2c3e0051c31c3f5b2328b447eadf1cf9c4427442 |
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7 (cherry picked from commit 0c7f116bb6950ef819323d855415b2f2b0aad987)
ndroid.mk
smWriter.cpp
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstants.cpp
ore.cpp
IBuilder.cpp
ebugInfo.cpp
ebugInfoMetadata.cpp
ebugLoc.cpp
iagnosticInfo.cpp
unction.cpp
COV.cpp
RBuilder.cpp
RPrintingPasses.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
LVMContextImpl.h
egacyPassManager.cpp
etadata.cpp
seListOrder.cpp
alue.cpp
erifier.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
smWriter.cpp
smWriter.h
utoUpgrade.cpp
asicBlock.cpp
onstantFold.cpp
onstantRange.cpp
onstants.cpp
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
iagnosticInfo.cpp
COV.cpp
lobals.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
LVMContextImpl.h
egacyPassManager.cpp
angler.cpp
odule.cpp
ypeFinder.cpp
alue.cpp
erifier.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
ndroid.mk
smWriter.cpp
smWriter.h
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ebugInfoMetadata.cpp
ebugLoc.cpp
iagnosticInfo.cpp
ominators.cpp
unction.cpp
COV.cpp
lobals.cpp
RBuilder.cpp
RPrintingPasses.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
ntrinsicInst.cpp
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eakDetector.cpp
eaksContext.h
egacyPassManager.cpp
DBuilder.cpp
etadata.cpp
etadataImpl.h
etadataTracking.cpp
odule.cpp
ass.cpp
assManager.cpp
tatepoint.cpp
ype.cpp
ypeFinder.cpp
alue.cpp
alueSymbolTable.cpp
erifier.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
ndroid.mk
smWriter.cpp
smWriter.h
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstantFold.h
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ebugLoc.cpp
iagnosticInfo.cpp
iagnosticPrinter.cpp
unction.cpp
COV.cpp
lobals.cpp
RBuilder.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eaksContext.h
egacyPassManager.cpp
DBuilder.cpp
angler.cpp
etadata.cpp
odule.cpp
assManager.cpp
assRegistry.cpp
ymbolTableListTraitsImpl.h
ype.cpp
ypeFinder.cpp
se.cpp
seListOrder.cpp
ser.cpp
alue.cpp
alueSymbolTable.cpp
erifier.cpp
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
ndroid.mk
smWriter.cpp
smWriter.h
ttributes.cpp
utoUpgrade.cpp
MakeLists.txt
omdat.cpp
onstantFold.cpp
onstants.cpp
ore.cpp
IBuilder.cpp
ebugInfo.cpp
ebugLoc.cpp
iagnosticInfo.cpp
unction.cpp
COV.cpp
lobals.cpp
nstruction.cpp
nstructions.cpp
etadata.cpp
odule.cpp
ass.cpp
assRegistry.cpp
alue.cpp
erifier.cpp
|
075c621d834af7ffc32d2067fadb147cc1758b99 |
02-Jun-2014 |
Chris Wailes <chriswailes@google.com> |
Adds the ability to run the llvm test suite in-tree. This was accomplished by building additional tools and hand-generating several files that are auto-generated by the configuration system when LLVM is built out-of-tree. The LTO, Interpreter, and DebugInfo libraries are now being compiled, and several source files were added to existing compilation targets. To run these tests you must first run build/envsetup.sh and have used lunch to select a target. You can then launch the test script by running: cd $ANDROID_BUILD_TOP/external/llvm && ./android_test.sh Bug: 15433215 Change-Id: I43d87de0a4620cdd46c8d0f825dd4428e8409702
ndroid.mk
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
ndroid.mk
smWriter.cpp
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ebugLoc.cpp
iagnosticInfo.cpp
unction.cpp
COV.cpp
lobals.cpp
RPrintingPasses.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
ntrinsicInst.cpp
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eaksContext.h
egacyPassManager.cpp
DBuilder.cpp
angler.cpp
etadata.cpp
odule.cpp
ass.cpp
assManager.cpp
assRegistry.cpp
ymbolTableListTraitsImpl.h
ype.cpp
se.cpp
alue.cpp
alueSymbolTable.cpp
erifier.cpp
odule.modulemap
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
ndroid.mk
smWriter.cpp
smWriter.h
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstantRange.cpp
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ebugLoc.cpp
iagnosticInfo.cpp
iagnosticPrinter.cpp
ominators.cpp
unction.cpp
COV.cpp
VMaterializer.cpp
lobals.cpp
RPrintingPasses.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
ntrinsicInst.cpp
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eakDetector.cpp
egacyPassManager.cpp
angler.cpp
etadata.cpp
odule.cpp
ass.cpp
assManager.cpp
assRegistry.cpp
rintModulePass.cpp
ype.cpp
se.cpp
alue.cpp
erifier.cpp
|
373aa5c665fe6df6b9c5586d397dc3617f25aab5 |
07-Feb-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for merge to 3.4. Update config.h files. Add RS SubtargetFeature for +long64 on ARM devices. Adjust Android.mk for added/removed files: + Delinearization.cpp - PathNumbering.cpp - PathProfileInfo.cpp - PathProfileVerifier.cpp - ProfileDataLoader.cpp - ProfileDataLoaderPass.cpp - ProfileEstimatorPass.cpp - ProfileInfo.cpp - ProfileInfoLoader.cpp - ProfileInfoLoaderPass.cpp - ProfileVerifierPass.cpp + LiveRegUnits.cpp - ShrinkWrapping.cpp + StackMaps.cpp - StrongPHIElimination.cpp + DIEHash.cpp + LegacyPassManager.cpp + ELF.cpp + Unicode.cpp - MipsOptimizeMathLibCalls.cpp - MipsELFStreamer.cpp + MipsTargetStreamer.cpp - EdgeProfiling.cpp + DataFlowSanitizer.cpp + DebugIR.cpp - OptimalEdgeProfiling.cpp - PathProfiling.cpp - ProfilingUtils.cpp - BasicBlockPlacement.cpp + LoopRerollPass.cpp + PartiallyInlineLibCalls.cpp + SampleProfile.cpp + GlobalStatus.cpp Change-Id: I17dcf0bf53a1720acd8226ae3e30d84993562a91
ndroid.mk
|
ce9904c6ea8fd669978a8eefb854b330eb9828ff |
12-Feb-2014 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/release_34' into merge-20140211 Conflicts: lib/Linker/LinkModules.cpp lib/Support/Unix/Signals.inc Change-Id: Ia54f291fa5dc828052d2412736e8495c1282aa64
|
51fce2c886e4ca33272975cc80bc1cc5abfcdffd |
09-Dec-2013 |
Manman Ren <manman.ren@gmail.com> |
Merging r196172: ------------------------------------------------------------------------ r196172 | mren | 2013-12-02 16:12:14 -0800 (Mon, 02 Dec 2013) | 4 lines Debug Info: rename getDebugInfoVersionFromModule to getDebugMetadataVersionFromModule. Suggested by Eric. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196823 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
ebugInfo.cpp
|
27457ac42f7a9267ab7e0190424a95fecf0ea201 |
09-Dec-2013 |
Manman Ren <manman.ren@gmail.com> |
Merging r196158: ------------------------------------------------------------------------ r196158 | mren | 2013-12-02 13:29:56 -0800 (Mon, 02 Dec 2013) | 12 lines Debug Info: drop debug info via upgrading path if version number does not match. Add a helper function getDebugInfoVersionFromModule to return the debug info version number for a module. "Verifier/module-flags-1.ll" checks for verification errors. It will seg fault when calling getDebugInfoVersionFromModule because of the incorrect format for module flags in the testing case. We make getModuleFlagsMetadata more robust by checking for error conditions. PR17982 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196822 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
ebugInfo.cpp
odule.cpp
|
c877b10446669bf107c19cab78b920ce9cffb989 |
09-Dec-2013 |
Manman Ren <manman.ren@gmail.com> |
Merging r195505: ------------------------------------------------------------------------ r195505 | mren | 2013-11-22 14:06:31 -0800 (Fri, 22 Nov 2013) | 8 lines Debug Info: move StripDebugInfo from StripSymbols.cpp to DebugInfo.cpp. We can share the implementation between StripSymbols and dropping debug info for metadata versions that do not match. Also update the comments to match the implementation. A follow-on patch will drop the "Debug Info Version" module flag in StripDebugInfo. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196816 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
cf5f97edf1355be0d7847c73559f8f2b73b54074 |
08-Dec-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r196637: ------------------------------------------------------------------------ r196637 | arsenm | 2013-12-06 18:58:41 -0800 (Fri, 06 Dec 2013) | 1 line Add getBitCastOrAddrSpaceCast ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196707 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
354362524a72b3fa43a6c09380b7ae3b2380cbba |
19-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. The memory leaks in this version have been fixed. Thanks Alexey for pointing them out. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195064 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
etadata.cpp
alue.cpp
|
4adba52570723c2e1654b1c01feddf759893f096 |
19-Nov-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Simplify a few more explicit constructions, underconstrained types, and make DIType(MDNode*) explicit like all the other DI* node ctors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195055 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
fe45fd084db872f9c7106c26e52c1cc8c9cba3a5 |
18-Nov-2013 |
Paul Robinson <paul_robinson@playstation.sony.com> |
The 'optnone' attribute means don't inline anything into this function (except functions marked always_inline). Functions with 'optnone' must also have 'noinline' so they don't get inlined into any other function. Based on work by Andrea Di Biagio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195046 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
b21ab43cfc3fa0dacf5c95f04e58b6d804b59a16 |
18-Nov-2013 |
Alexey Samsonov <samsonov@google.com> |
Revert r194865 and r194874. This change is incorrect. If you delete virtual destructor of both a base class and a subclass, then the following code: Base *foo = new Child(); delete foo; will not cause the destructor for members of Child class. As a result, I observe plently of memory leaks. Notable examples I investigated are: ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
etadata.cpp
alue.cpp
|
65c102e7fb68f78117be665dd9d4a73ef7e9f795 |
18-Nov-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: disable it by default. Debug info verifier is part of the verifier which is a Function Pass. Tot currently tries to pull all reachable debug info MDNodes in each function, which is too time-consuming. The correct fix seems to be separating debug info verification to its own module pass. I will disable the debug info verifier until a correct fix is found. For Bill's testing case, enabling debug info verifier increase compile time from 11s to 11m. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194986 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
6950be28511caf355abdf405404b5f37cc136bc5 |
17-Nov-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: fix typo in function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194975 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
9564d643d7b5ec2ea4068d7dadae88f285ae928e |
17-Nov-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: fix when to find debug info nodes and when to verify them. We used to collect debug info MDNodes in doInitialization and verify them in doFinalization. That is incorrect since MDNodes can be modified by passes run between doInitialization and doFinalization. To fix the problem, we handle debug info MDNodes that can be reached from a function in runOnFunction (i.e we collect those nodes by calling processDeclare, processValue and processLocation, and then verify them in runOnFunction). We handle debug info MDNodes that can be reached from named metadata in doFinalization. This is in line with how Verifier handles module-level data (they are verified in doFinalization). rdar://15472296 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194974 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
2b31b8227fb5507c26a8c4724574fc87fb90f482 |
17-Nov-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: enable public functions of Finder to update the type map. We used to depend on running processModule before the other public functions such as processDeclare, processValue and processLocation. We are now relaxing the constraint by adding a module argument to the three functions and letting the three functions to initialize the type map. This will be used in a follow-on patch that collects nodes reachable from a Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194973 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
3d429d80e4c062d0371fb105a87cc5260652c9b2 |
16-Nov-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: remove un-used argument in verifyDebugInfo. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194917 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
5a364c5561ec04e33a6f5d52c14f1bac6f247ea0 |
15-Nov-2013 |
Juergen Ributzka <juergen@apple.com> |
[weak vtables] Remove a bunch of weak vtables This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194865 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
etadata.cpp
alue.cpp
|
4303b091d0b0c4982efde6f575f4dfd72ff14c42 |
15-Nov-2013 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Fix an iterator problem spotted by the MSVC debug iterators and AaronBallman. Thanks for the excellent review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194857 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
d515e98ebf711d7e80589e4029f27c206573b400 |
15-Nov-2013 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Run clang-format on a few lines that I missed in my first pass, pulling them under 80-columns. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194856 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
d881c1bdd1f63bbbdb8eec5f6ae7fd765103972f |
15-Nov-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
llvm-cov: Clean up memory leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194799 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
59d3ae6cdc4316ad338cd848251f33a236ccb36c |
15-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add addrspacecast instruction. Patch by Michele Scandale! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194760 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
onstantFold.cpp
onstants.cpp
ore.cpp
nstruction.cpp
nstructions.cpp
alue.cpp
erifier.cpp
|
bdc23320c10f58f9579a397bd36584dcbd702fae |
14-Nov-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
IR/GCOV.cpp: Use PRIu64 as format string with uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194693 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
12e90cb69a0a39d0db208de98162e39a2e3d6d1e |
14-Nov-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194692 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
4bd0224887a8de1434186cad2f618c18dea06c0b |
14-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
llvm-cov: Slightly improved error checking. - readInt() should check all 4 bytes can be read, not just 1. - In the event of false data in the gcno file, it was possible to index into a non-existent index of SmallVector, causing assertion error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194639 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
131a764e0e7abc90b322fd568e042d3c5a0633af |
14-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
llvm-cov: Removed StringMap holding GCOVLines. According to the hazy gcov documentation, it appeared to be technically possible for lines within a block to belong to different source files. However, upon further investigation, gcov does not actually support multiple source files for a single block. This change removes a level of separation between blocks and lines by replacing the StringMap of GCOVLines with a SmallVector of ints representing line numbers. This also means that the GCOVLines class is no longer needed. This paves the way for supporting the "-a" option, which will output block information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194637 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
dbb51ff01fd08df39e5040c1cd9edacdc3e4308a |
14-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
llvm-cov: Replaced asserts with proper error handling. Unified the interface for read functions. They all return a boolean indicating if the read from file succeeded. Functions that previously returned the read value now store it into a variable that is passed in by reference instead. Callers will need to check the return value to detect if an error occurred. Also added a new test which ensures that no assertions occur when file contains invalid data. llvm-cov should return with error code 1 upon failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194635 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
7af43e0ad01a5f85f9066b69faba990a72f89536 |
13-Nov-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't call doFinalization from verifyFunction. verifyFunction needs to call doInitialization to collect metadata and avoid crashing when verifying debug info in a function. But it should not call doFinalization since that is where the verifier will check declarations, variables and aliases, which is not desirable when one only wants to verify a function. A possible cleanup would be to split the class into a ModuleVerifier and FunctionVerifier. Issue reported by Ilia Filippov. Patch by Michael Kruse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194574 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
f348c9782c5c31309dfd2d04e3dbee21fefe07ff |
13-Nov-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Introduce an AnalysisManager which is like a pass manager but with a lot more smarts in it. This is where most of the interesting logic that used to live in the implicit-scheduling-hackery of the old pass manager will live. Like the previous commits, note that this is a very early prototype! I expect substantial changes before this is ready to use. The core of the design is the following: - We have an AnalysisManager which can be used across a series of passes over a module. - The code setting up a pass pipeline registers the analyses available with the manager. - Individual transform passes can check than an analysis manager provides the analyses they require in order to fail-fast. - There is *no* implicit registration or scheduling. - Analysis passes are different from other passes: they produce an analysis result that is cached and made available via the analysis manager. - Cached results are invalidated automatically by the pass managers. - When a transform pass requests an analysis result, either the analysis is run to produce the result or a cached result is provided. There are a few aspects of this design that I *know* will change in subsequent commits: - Currently there is no "preservation" system, that needs to be added. - All of the analysis management should move up to the analysis library. - The analysis management needs to support at least SCC passes. Maybe loop passes. Living in the analysis library will facilitate this. - Need support for analyses which are *both* module and function passes. - Need support for pro-actively running module analyses to have cached results within a function pass manager. - Need a clear design for "immutable" passes. - Need support for requesting cached results when available and not re-running the pass even if that would be necessary. - Need more thorough testing of all of this infrastructure. There are other aspects that I view as open questions I'm hoping to resolve as I iterate a bit on the infrastructure, and especially as I start writing actual passes against this. - Should we have separate management layers for function, module, and SCC analyses? I think "yes", but I'm not yet ready to switch the code. Adding SCC support will likely resolve this definitively. - How should the 'require' functionality work? Should *that* be the only way to request results to ensure that passes always require things? - How should preservation work? - Probably some other things I'm forgetting. =] Look forward to more patches in shorter order now that this is in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194538 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
assManager.cpp
|
5a34980b4e0a60d39ad3acb9dd467b74ce2d830d |
11-Nov-2013 |
Andrew Trick <atrick@apple.com> |
Print new JavaScript calling conventions symbolically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194427 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
877ca3418f8fcd8e966e80b7e7f1dcb944dbed59 |
11-Nov-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194383 91177308-0d34-0410-b5e6-96231b3b80d8
ype.cpp
|
b831e13387c88c39f382db3f76e85433f1978e7f |
10-Nov-2013 |
David Majnemer <david.majnemer@gmail.com> |
IR: Refactor GEP range checks, reuse them for other parts of folding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194341 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
49837ef8111fbeace7ae6379ca733c8f8fa94cfe |
09-Nov-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move the old pass manager infrastructure into a legacy namespace and give the files a legacy prefix in the right directory. Use forwarding headers in the old locations to paper over the name change for most clients during the transitional period. No functionality changed here! This is just clearing some space to reduce renaming churn later on with a new system. Even when the new stuff starts to go in, it is going to be hidden behind a flag and off-by-default as it is still WIP and under development. This patch is specifically designed so that very little out-of-tree code has to change. I'm going to work as hard as I can to keep that the case. Only direct forward declarations of the PassManager class are impacted by this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194324 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
egacyPassManager.cpp
assManager.cpp
|
5f7259180c59b2830bf206b44439be32ffa9161e |
08-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove ^M from the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194251 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
f9c692cfeb9a73bad531f86d9f103e67d3d0e162 |
07-Nov-2013 |
David Majnemer <david.majnemer@gmail.com> |
IR: Properly canonicalize PointerType in ConstantExpr GEPs No additional test was needed, Other/constant-fold-gep.ll detects this just fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194221 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
0ab20588523b59a65a4a29d47184a41443fa9337 |
07-Nov-2013 |
David Majnemer <david.majnemer@gmail.com> |
IR: Do not canonicalize constant GEPs into an out-of-bounds array access Summary: Consider a GEP of: i8* getelementptr ({ [2 x i8], i32, i8, [3 x i8] }* @main.c, i32 0, i32 0, i64 0) If we proceeded to GEP the aforementioned object by 8, would form a GEP of: i8* getelementptr ({ [2 x i8], i32, i8, [3 x i8] }* @main.c, i32 0, i32 0, i64 8) Note that we would go through the first array member, causing an out-of-bounds accesses. This is problematic because we might get fooled if we are trying to evaluate loads using this GEP, for example, based off of an object with a constant initializer where the array is zero. This fixes PR17732. Reviewers: nicholas, chandlerc, void Reviewed By: void CC: llvm-commits, echristo, void, aemerson Differential Revision: http://llvm-reviews.chandlerc.com/D2093 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194220 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
14bbb1d9b083c7935185e7c11ddf059f352aa3fc |
06-Nov-2013 |
Peter Zotov <whitequark@whitequark.org> |
[llvm-c] Implement LLVMPrintValueToString Original patch by Chris Wailes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194135 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
af9e8e60ae5118066e49730ae5a96aadf3a8f624 |
05-Nov-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use error_code in GVMaterializer. They just propagate out the bitcode reader error, so we don't need a new enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194091 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
f44533c65e351329306aec7bb9e3eeab26c009b6 |
05-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Revert "llvm-cov: Added command-line option to change dir." This reverts commit d8acf0078cf363252727acff00f85ae8074f95b3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194040 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
d8acf0078cf363252727acff00f85ae8074f95b3 |
05-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
llvm-cov: Added command-line option to change dir. This will allow for much easier testing when the input files are in a different folder from the test script. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194034 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
e85959cb2cb6f82959b3cf1a9ef59c6d793a2556 |
05-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Support for reading run counts in llvm-cov. This patch enables llvm-cov to correctly output the run count stored in the GCDA file. GCOVProfiling currently does not generate this information, so the GCDA run data had to be hacked on from a GCDA file generated by gcc. This is corrected by a subsequent patch. With the run and program data included, both llvm-cov and gcov produced the same output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194033 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
daaa8b720b026c83bf6d4307042057665348b222 |
02-Nov-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Added command-line option to output llvm-cov to file. Added -o option to llvm-cov. If no output file is specified, it defaults to STDOUT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193899 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
19794da02cc48a772ae6f4756b14b111a627170e |
01-Nov-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove linkonce_odr_auto_hide. linkonce_odr_auto_hide was in incomplete attempt to implement a way for the linker to hide symbols that are known to be available in every TU and whose addresses are not relevant for a particular DSO. It was redundant in that it all its uses are equivalent to linkonce_odr+unnamed_addr. Unlike those, it has never been connected to clang or llvm's optimizers, so it was effectively dead. Given that nothing produces it, this patch just nukes it (other than the llvm-c enum value). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193865 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ore.cpp
erifier.cpp
|
2e50b8a08d40ce72ae35c73528140d3ee25209e0 |
31-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Enable variable arguments support for intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193766 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
erifier.cpp
|
415b33f161537be38be213cb7cb89314173f6549 |
30-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add calls to doInitialization() and doFinalization() in verifyFunction() The function verifyFunction() in lib/IR/Verifier.cpp misses some calls. It creates a temporary FunctionPassManager that will run a single Verifier pass. Unfortunately, FunctionPassManager is no PassManager and does not call doInitialization() and doFinalization() by itself. Verifier does important tasks in doInitialization() such as collecting type information used to check DebugInfo metadata and doFinalization() does some additional checks. Therefore these checks were missed and debug info couldn't be verified at all, it just crashed if the function had some. verifyFunction() is currently not used in llvm unless -debug option is enabled, and in unittests/IR/VerifierTest.cpp VerifierTest had to be changed to create the function in a module from which the type debug info can be collected. Patch by Michael Kruse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193719 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
72202297a90563ec3eedd3015395c8d1a8db0a87 |
29-Oct-2013 |
Anders Waldenborg <anders@0x63.nu> |
Fix misapplied patch in r193597 Sorry Peter Zotov, entirely my fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193598 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
7959f209ba8e63ffaf7335842deddda4ca0480e7 |
29-Oct-2013 |
Anders Waldenborg <anders@0x63.nu> |
llvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too Patch by Peter Zotov Differential Revision: http://llvm-reviews.chandlerc.com/D1910 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193597 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
69bd41dfe33f24414be281ba5e2204b7348c33ae |
27-Oct-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Revert r193251 : Use address-taken to disambiguate global variable and indirect memops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193489 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
lobals.cpp
|
81e3828be14cf5b35329c0a2372acf998980f271 |
25-Oct-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
llvm-cov dump to dbgs() instead of outs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193390 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
76fa4d629b22903632529e2cb19c86105a0d1247 |
25-Oct-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Support for reading program counts in llvm-cov. llvm-cov will now be able to read program counts from the GCDA file and output it in the same format as gcov. The program summary tag was identified from gcov-io.h as "\0\0\0\a3". There is currently a bug in GCOVProfiling.cpp which does not generate the run- or program-counting IR, so this change was tested manually by modifying the GCDA file and comparing the gcov and llvm-cov outputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193389 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
cbbd20879e8acf35d3326a2459e17a298b5f5d15 |
24-Oct-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Fixed llvm-cov to count edges instead of blocks. This was a fundamental flaw in llvm-cov where it treated the values in the GCDA files as block counts instead of edge counts. This created incorrect line counts when branching was present. Instead, the edge counts should be summed to obtain the correct block count. The fix was tested using custom test files as well as single source files from the test-suite directory. The behaviour can be verified by reading the GCOV documentation that describes the GCDA spec ("ARC_COUNTS gives the counter values for those arcs that are instrumented") and the header description provided by GCOVProfiling.cpp ("instruments the code that runs to records (sic) the edges between blocks that run and emit a complementary "gcda" file on exit"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193299 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
9db9663d1d2e4e336c2787bacff4ee7125622e21 |
23-Oct-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Use a map instead of vector to store line counts. There are a few motivations for this: - Using a map allows for checking if line is in map. This differentiates unexecutable lines (such as comments) from unexecuted logical lines of code. "#####" is now outputted in this case, in line with gcov. - Source files are no longer read in twice: once when storing the line counts, and once when outputting the data. - Greatly simplifies the function FileInfo::addLineCount(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193264 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
8e3851a6eb9fe5fc30094c3a00d2b89c7cd68cbd |
23-Oct-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Use address-taken to disambiguate global variable and indirect memops. Major steps include: 1). introduces a not-addr-taken bit-field in GlobalVariable 2). GlobalOpt pass sets "not-address-taken" if it proves a global varirable dosen't have its address taken. 3). AA use this info for disambiguation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193251 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
lobals.cpp
|
752d303a103a4b2504ddf50c0613a3c2f3536014 |
23-Oct-2013 |
Yuchen Wu <yuchenericwu@hotmail.com> |
Test commit. Added whitespace in GCOV.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193224 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
67fa53989a7bb05083966a694ad0c2e9b62ed683 |
22-Oct-2013 |
Bob Wilson <bob.wilson@apple.com> |
llvm-cov: Use uint32_t for loop variables to be more consistent. The loop bounds here are uint32_t variables, so it makes sense for the loop variables to have the same type. Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193192 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
0a2463c990db33dd5fc1a15b70bcc38d4c273af7 |
22-Oct-2013 |
Bob Wilson <bob.wilson@apple.com> |
llvm-cov: fix a typo and rename a variable. Rename Size to EndPos, which makes more sense because the variable stores the last location of the blocks. Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193189 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
51ec77d880ce53cbc8a48168185edc085df9b6d9 |
22-Oct-2013 |
Bob Wilson <bob.wilson@apple.com> |
Fix llvm-cov counts to be 64-bit integers to avoid overflows. Line counts in llvm-cov are read in as 64-bit integers but were being truncated to 32-bit in collectLineCounts(), which caused overflow for large counts. This patch fixes all counts to be uint64_t. Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193172 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
18b9105d02ee152e7f8faab751d6f356428c3054 |
22-Oct-2013 |
Anders Waldenborg <anders@0x63.nu> |
llvm-c: Add LLVMPrintTypeToString Differential Revision: http://llvm-reviews.chandlerc.com/D1963 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193149 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
e877eebfe9d716ed1101aecf958af473836e70e1 |
22-Oct-2013 |
Bob Wilson <bob.wilson@apple.com> |
Change llvm-cov output formatting to be more similar to gcov. - Replaced tabs with proper padding - print() takes two arguments, which are the GCNO and GCDA filenames - Files are listed at the top of output, appended by line 0 - Stripped strings of trailing \0s - Removed last two lines of whitespace in output Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193148 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
32c69dd1abf419742d99c59e7d54812e315cbb2d |
22-Oct-2013 |
Bob Wilson <bob.wilson@apple.com> |
Move the printing of llvm-cov information out from collectLineCounts(). collectLineCounts() should only organize the output data. This is done in anticipation of subsequent changes which will pass in GCNO and GCDA filenames into the print function where it is printed similar to the gcov output. Patch by Yuchen Wu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193134 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
c3b6e80d291b8ac53c67a4d292c1e60469d78447 |
17-Oct-2013 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
Changing DebugInfoFinder to iterate over all the compile units. Solves http://llvm.org/bugs/show_bug.cgi?id=17507 Committed on behalf of alon.mishne@intel.com git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192879 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
75a5df1d1e086f3d9c46e1b602381fb56a8911f3 |
16-Oct-2013 |
Anders Waldenborg <anders@0x63.nu> |
llvm-c: Add LLVMDumpType The C API currently allows to dump values (LLVMDumpValue), but a similar method for types was not exported. Patch by Peter Zotov Differential Revision: http://llvm-reviews.chandlerc.com/D1911 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192852 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
2906b519d1f47f1b269ed1be9c70f752b3dca928 |
16-Oct-2013 |
Anders Waldenborg <anders@0x63.nu> |
[llvm-c] Add LLVMPrintModuleToString. Like LLVMDumpModule but returns the string (that needs to be freed with LLVMDisposeMessage) instead of printing it to stderr. Differential Revision: http://llvm-reviews.chandlerc.com/D1941 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192821 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
1e6810005f426798ce2541c26f0cdc7a08670846 |
16-Oct-2013 |
Will Dietz <wdietz2@illinois.edu> |
TypeFinder: prefer iterative algorithm to keep stack usage low. Introduce subtype_reverse_iterator to maintain the numbering assigned during the recursive type walk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192770 91177308-0d34-0410-b5e6-96231b3b80d8
ypeFinder.cpp
|
3aa342be500a55c3bbee302f3a8db937eaa2c241 |
16-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for metadata representing .ident directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192764 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
4159733c1a9a6f4aea6ea4d558ca4806a3f959d2 |
16-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Add an assert that we have a scope that matters for methods and remove a call to getNonCompileUnitScope as a method shouldn't be in the compile unit scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192748 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
ff64b7d7e36b55ecb3cce38f08f60fce7892b269 |
16-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Clean up, formatting, comments. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192747 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
390ff499f053771cba51a2f42651f126a7e096f7 |
15-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove x86_sse42_crc32_64_8 intrinsic. It has no functional difference from x86_sse42_crc32_32_8 and was not mapped to a clang builtin. I'm not even sure why this form of the instruction is even called out explicitly in the docs. Also add AutoUpgrade support to convert it into the other intrinsic with appropriate trunc and zext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192672 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
|
b8e48a636e7ee6c13140382eb93d9695a65b0624 |
10-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context field of subprogram is updated to use DIScopeRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192378 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
b4d9c11f6c7e0a38e750f946d5cea3ffa5ae8f61 |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context and type fields of template_type and template_value are updated to use DIRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192320 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
5e5d494ce00741858d5a2f8c305bcd0b341988d2 |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context field of a forward decl is updated to use DIScopeRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192309 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
1a525e8c80305777e3ca0cba0e1903fdbf04aa86 |
09-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a GlobalAlias::isValidLinkage to reduce code duplication. Thanks to Reid Kleckner for the suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192298 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
456e5e55213c4564a44b8494ff230f8bf12caba7 |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context field of a DICompositeType is updated to use DIScopeRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192256 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
b6f74f06682df931631b9ac3de945b72e526f64e |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context fields of a static member and a typedef are updated to use DIScopeRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192254 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
c1e2b2582c151be5a819705f20f6a7167db90cfa |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of DICompositeType is updated to use DITypeRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192251 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
78c2f9b8cf7cd4492212c792d7ae3b21535d0a1d |
09-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of DIDerivedType is updated to use DITypeRef. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192246 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
c4a8c07f6489c0081207f722ce0a4502614aef69 |
07-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Change objectsize intrinsic to accept different address spaces. Bitcasting everything to i8* won't work. Autoupgrade the old intrinsic declarations to use the new mangling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192117 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
|
2def17935c87f5e6b23d899567ef3dd00ed89d48 |
06-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for aliases with linkonce_odr. This will be used to extend constructor aliases in clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192066 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
c664d76716ba87577b6c2a513ce4fe0712a2d3e2 |
05-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type is updated to use DITypeRef. Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static helper functions in DwarfCompileUnit. We already have a static helper function "isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to resolve the derived-from field. All three functions need to go across link for derived-from fields, so we need to get hold of a type identifier map. A pointer to DwarfDebug is also added to DbgVariable in order to resolve the derived-from field. Debug info verifier is updated to check a derived-from field is a TypeRef. Verifier will not go across link for derived-from fields, in debug info finder, we go across the link to add derived-from fields to types. Function getDICompositeType is only used by dragonegg and since dragonegg does not generate identifier for types, we use an empty map to resolve the derived-from field. When printing a derived-from field, we use DITypeRef::getName to either return the type identifier or getName of the DIType. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192018 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
3f045005bf96b6521b2769fc824283589bfa133a |
04-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily revert r191792 as it is causing some LTO debug failures on platforms with relocations in debug info and also temporarily revert r191800 due to conflicts with the revert of r191792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191967 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
da750239bd1f02aef403baa4805805fb580e78e1 |
03-Oct-2013 |
Pete Cooper <peter_cooper@apple.com> |
Add v4f16 to supported value types. This is useful for some ARM intrinsics such as VCVTN which does a <4 x float> <-> <4 x half> conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191870 91177308-0d34-0410-b5e6-96231b3b80d8
alueTypes.cpp
|
2b53089bd017139f0125b870ace94ff27dffd2ff |
02-Oct-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type is updated to use DITypeRef. Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static helper functions in DwarfCompileUnit. We already have a static helper function "isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to resolve the derived-from field. All three functions need to go across link for derived-from fields, so we need to get hold of a type identifier map. A pointer to DwarfDebug is also added to DbgVariable in order to resolve the derived-from field. Debug info verifier is updated to check a derived-from field is a TypeRef. Verifier will not go across link for derived-from fields, in debug info finder, we go across the link to add derived-from fields to types. Function getDICompositeType is only used by dragonegg and since dragonegg does not generate identifier for types, we use an empty map to resolve the derived-from field. When printing a derived-from field, we use DITypeRef::getName to either return the type identifier or getName of the DIType. A paired commit at clang is required due to changes to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191800 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
b1d70af7b93c1e9161a4e7ca51659a1123c96177 |
01-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Reuse variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191712 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
2ebcd57e6adf2dc951eb7ad5f42952961f1a60c9 |
30-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix getOrInsertGlobal dropping the address space. Currently it will insert an illegal bitcast. Arguably, the address space argument should be added for the creation case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191702 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
e5388399c795edd3687b08f33446a253d65247d6 |
30-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: constify and rename from generateRef to getRef. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191696 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
f625c14487e59aaa7d6c7e548be654de949ecec8 |
28-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191595 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
804f034bd18789e9bbf4c70c10189dd6dbf04128 |
28-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. We treat TBAA tags as struct-path aware TBAA format when the first operand is a MDNode and the tag has 3 or more operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191593 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
|
477fc628b3c9ce1c970d4a678dd5607b15242cc8 |
24-Sep-2013 |
Jiangning Liu <jiangning.liu@arm.com> |
Initial support for Neon scalar instructions. Patch by Ana Pazos. 1.Added support for v1ix and v1fx types. 2.Added Scalar Pairwise Reduce instructions. 3.Added initial implementation of Scalar Arithmetic instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191263 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
alueTypes.cpp
|
abe68f59174c7418ae73de0a87587abe0be1fb03 |
19-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." Working on a better solution to this. This reverts commit 7d4e9934e7ca83094c5cf41346966c8350179ff2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190990 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
assManager.cpp
|
7d4e9934e7ca83094c5cf41346966c8350179ff2 |
19-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Encapsulate PassManager debug flags to avoid static init and cxa_exit. This puts all the global PassManager debugging flags, like -print-after-all and -time-passes, behind a managed static. This eliminates their static initializers and, more importantly, exit-time destructors. The only behavioral change I anticipate is that tools need to initialize the PassManager before parsing the command line in order to export these options, which makes sense. Tools that already initialize the standard passes (opt/llc) don't need to do anything new. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190974 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
assManager.cpp
|
2cccc6220cc351b52d2cd2d0b7139502e854b68d |
19-Sep-2013 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190973 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
assManager.cpp
|
4b28ee208895d2a9c98b9e63d0c39985500e9291 |
17-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
MemCpyOptimizer: Use max legal int size instead of pointer size If there are no legal integers, assume 1 byte. This makes more sense than using the pointer size as a guess for the maximum GPR width. It is conceivable to want to use some 64-bit pointers on a target where 64-bit integers aren't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190817 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
1e3037f0be430ef2339838bbdede11f45658bd82 |
16-Sep-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement function prefix data as an IR feature. Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html Differential Revision: http://llvm-reviews.chandlerc.com/D1191 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190773 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
unction.cpp
LVMContextImpl.h
ypeFinder.cpp
|
dc293b3fe9e3cb7eb7ce7035b32218251a06fbfe |
11-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: move class definition of DIRef. Definition of DIRef used to require the full definition of DIType because of usage of DIType::isType in DIRef::resolve. We now use DIDescriptor::isType instead to remove the requirement and move definition of DIRef before DIType. With this, we can move the definition of DIType::getContext to the header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190540 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
55c06ae7afa3f862a6bb4a4441fe485c135f5b5e |
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "Give internal classes hidden visibility." It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190536 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.h
ttributeImpl.h
onstantsContext.h
LVMContextImpl.h
eaksContext.h
|
15f387c93ef8d5c23f110143996c8b9b4a089864 |
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Give internal classes hidden visibility. Worth 100k on a linux/x86_64 Release+Asserts clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190534 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.h
ttributeImpl.h
onstantsContext.h
LVMContextImpl.h
eaksContext.h
|
2c46deb1d07f4588ee70059cdd4c7145f81bc8e8 |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: define a DIRef template. Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure the Value is indeed a scope ref and a type ref. Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef for getContainingType and getClassType. DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for readability and type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190418 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d4fc36f2644283c710400adfb0d6ddebea622753 |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: In DIBuilder, the context fields of a TAG_inheritance and a TAG_friend are updated to use scope reference. Added testing cases to verify that class with inheritance can be uniqued. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190364 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
e72aba9c0ff5b19128f54b09a36d2f4c2a53b40b |
10-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: move DIScope::getContext back from DwarfDebug. This partially reverts r190330. DIScope::getContext now returns DIScopeRef instead of DIScope. We construct a DIScopeRef from DIScope when we are dealing with subprogram, lexical block or name space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190362 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
2c9905a1f3bcf22cc2f93332cc8411d11798ba07 |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use DIScopeRef for DIType::getContext. In DIBuilder, the context field of a TAG_member is updated to use the scope reference. Verifier is updated accordingly. DebugInfoFinder now needs to generate a type identifier map to have access to the actual scope. Same applies for BreakpointPrinter. processModule of DebugInfoFinder is called during initialization phase of the verifier to make sure the type identifier map is constructed early enough. We are now able to unique a simple class as demonstrated by the added testing case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190334 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
erifier.cpp
|
18eb245a2e5ec41b5da1367d5f7e7619532f7ceb |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: move DIScope::getContext to DwarfDebug. DIScope::getContext is a wrapper function that calls the specific getContext method on each subclass. When we switch DIType::getContext to return DIScopeRef instead of DIScope, DIScope::getContext can no longer return a DIScope without a type identifier map. DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug to have easy access to the type identifier map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190330 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
db3a9e64f856e3a233a427da1f3969fd3a65a438 |
09-Sep-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert patches to add case-range support for PR1255. The work on this project was left in an unfinished and inconsistent state. Hopefully someone will eventually get a chance to implement this feature, but in the meantime, it is better to put things back the way the were. I have left support in the bitcode reader to handle the case-range bitcode format, so that we do not lose bitcode compatibility with the llvm 3.3 release. This reverts the following commits: 155464, 156374, 156377, 156613, 156704, 156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575, 157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884, 157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100, 159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659, 159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190328 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
erifier.cpp
|
02d296759cd53f2d6081fd307c4d81cc41f2c9ed |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Move isSubprogramContext from DebugInfo to DwarfDebug. This helper function needs the type identifier map when we switch DIType::getContext to return DIScopeRef instead of DIScope. Since isSubprogramContext is used by DwarfDebug only, We move it to DwarfDebug to have easy access to the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190325 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
c573305bce147df68051a6dffef034c6210ab89c |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Rename DITypeRef to DIScopeRef. A reference to a scope is more general than a reference to a type since DIType is a subclass of DIScope. A reference to a type can be either an identifier for the type or the DIType itself, while a reference to a scope can be either an identifier for the type (when the scope is indeed a type) or the DIScope itself. A reference to a type and a reference to a scope will be resolved in the same way. The only difference is in the verifier when a field is a reference to a type (i.e. the containing type field of a DICompositeType) or a field is a reference to a scope (i.e. the context field of a DIType). This is to get ready for switching DIType::getContext to return DIScopeRef instead of DIScope. Tighten up isTypeRef and isScopeRef to make sure the identifier is not empty and the MDNode is DIType for TypeRef and DIScope for ScopeRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190322 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
626a4b785b8ef14bbd4f763a01396df3c6a758f7 |
09-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Update isScope to make sure DIType is a scope and TAG_file_type is also a scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190321 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
c7a25acefa43adba6623b2cc5b456151531dc7f4 |
08-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Revert r190269 to fix dragonegg failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190271 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
4fa214b2b9b4db9aaeb82467caddb303725fa91d |
08-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: use null instead of "i32 0" in DIBuilder. For context field of subroutine_type and when creating artificial types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190270 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
d372889eabcd10a9d8ce8fe9a4b2678d3a51d823 |
08-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: pass in DIScope instead of DIDescriptor in createMemberType. Improve readability. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190269 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
9401181aedb28198ceac56522f997899c426fc5e |
07-Sep-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove verifier check that attribute 'builtin' is only applied to calls to functions marked 'nobuiltin'. That approach doesn't play well with LTO, and there's no harm in marking a call as 'builtin' if it was going to be a builtin regardless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190233 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
0e85f6e391990cc20be98263640b843edfa32bef |
07-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in containing type field of a DISubprogram. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190229 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
8b56ca61e1f174d08d78f5aab3c83633c48af3a5 |
07-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: pass in VTableHolder as DIType instead of MDNode *. Remove one cast and improve readability. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190225 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
e42279cda481b48138d2119f4a4bbce7077f0a72 |
06-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in containing type field of a DICompositeType. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190190 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
5930eabe0fdc48c02c5af500aa5b1c5b732848b1 |
06-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Move a helper function getTypeIdentifier from DIBuilder to be part of DIType. Implement DIType::generateRef to return a type reference. This function will be used in setContaintingType and in DIBuilder to generete the type reference. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190188 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
bc66071baa3153ba95d673b8084383835221eef6 |
05-Sep-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: Use identifier to reference DIType in base type field of ptr_to_member. We introduce a new class DITypeRef that represents a reference to a DIType. It wraps around a Value*, which can be either an identifier in MDString or an actual MDNode. The class has a helper function "resolve" that finds the actual MDNode for a given DITypeRef. We specialize getFieldAs to return a field that is a reference to a DIType. To correctly access the base type field of ptr_to_member, getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef. Also add a typedef for DITypeIdentifierMap and a helper generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually populate the map. Verifier is updated accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190081 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
3a0e9b50f3a9031217a8fe209398ec37c54774eb |
30-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
DIBuilder: retain a type when created with a unique identifier. createClassType, createStructType, createUnionType, createEnumerationType, and createForwardDecl will retain a type when created with a unique identifier, to make sure they are treated as used even when all uses are replaced with the identifiers. Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created node can later be updated. The change will be tested when clients of DIBuilder start to pass in non-empty unique identifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189621 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
b5011bd2695cf6d4bdb2fa295abc5db37518d1cc |
28-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
Period. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189513 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
02ae44f31c83117e9f08f5c40d4124da03e64234 |
28-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
r189495: Pull out some debug logic into a function for legibility Code review feedback from Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189512 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
980879e618d32f7516aa3bbf1ee084b06e52d0ef |
28-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
PR16995: DebugInfo: Don't overwrite existing member lists when adding template arguments With the added debug assertions this fix is covered by existing Clang tests. (& found some other issues, also fixed) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189495 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
23f84cb1406b0f26f5bd808afa1828d427a40a2f |
28-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
DIBuilder: take an optional StringRef to pass in unique identifier. createClassType, createStructType, createUnionType, createEnumerationType, and createForwardDecl will take an optional StringRef to pass in the unique identifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189410 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
6e3cd0ebe22a7cc959ed301de7f2f09d7a9307c8 |
27-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: add an identifier field to DICompositeType. DICompositeType will have an identifier field at position 14. For now, the field is set to null in DIBuilder. For DICompositeTypes where the template argument field (the 13th field) was optional, modify DIBuilder to make sure the template argument field is set. Now DICompositeType has 15 fields. Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode. Update verifier to check that DICompositeType has 15 fields and the last field is null or a MDString. Update testing cases to include an extra field for DICompositeType. The identifier field will be used by type uniquing so a front end can genearte a DICompositeType with a unique identifer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189282 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
c99a0d8586cd1b3f6d3b13bb839205e22375235d |
25-Aug-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a bug where we would corrupt the offset when evaluating a non-constant GEP. I don't have any test case that demonstrates this, Nadav (indirectly) pointed this out in code review. I'm not sure how possible it is to contrive a test case for the current users of this code that triggers the bad issue sadly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189188 91177308-0d34-0410-b5e6-96231b3b80d8
alue.cpp
|
6b6a2ac6ca5aada4ff3d6882e0570338baed5a8b |
24-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
DebugInfoFinder: handle imported entities of a CU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189158 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
003f5519129e5413768b3d6a309f36389f425ced |
23-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
DebugInfoFinder: handle template params of a DISubprogram. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189131 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
5768bb8d77892926dff0d078b1fb08c14ea791f3 |
23-Aug-2013 |
Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> |
Add function attribute 'optnone'. This function attribute indicates that the function is not optimized by any optimization or code generator passes with the exception of interprocedural optimization passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189101 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
f73826bef09fcc38d2db7b69baf0b8a45c9788f8 |
22-Aug-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Add a new helper method to Value to strip in-bounds constant offsets of pointers, but accumulate the offset into an APInt in the process of stripping it. This is a pretty handy thing to have, such as when trying to determine if two pointers are at some constant relative offset. I'll be committing a patch shortly to use it for exactly that purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189000 91177308-0d34-0410-b5e6-96231b3b80d8
alue.cpp
|
abd37961d55680e5e946b9e336ce14b4ac56f830 |
20-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Introduce non-const overloads for GlobalAlias::{get,resolve}AliasedGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188725 91177308-0d34-0410-b5e6-96231b3b80d8
lobals.cpp
|
692062f18023979c0f8d5a155c14cf1f1616a2b0 |
16-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Allow the addition of other (such as static data) members to a record type after construction Plus a type cleanup & minor fix to enumerate members of declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188577 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
0fe3792a2fd6ed9c20d8bf8eb3689672cb30c1c7 |
14-Aug-2013 |
Jack Carter <jack.carter@imgtec.com> |
[Mips][msa] Value types for MSA support. Added v8f16 to ValueTypes.h, ValueTypes.cpp, ValueTypes.td, and CodeGenTarget.cpp Patch by Daniel Sanders git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188326 91177308-0d34-0410-b5e6-96231b3b80d8
alueTypes.cpp
|
8328b6932ffeb41af7fc1260a48d36cf2a427f6f |
09-Aug-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: provide the ability to add members to a class after it has been constructed This is necessary to allow Clang to only emit implicit members when there is code generated for them, rather than whenever they are ODR used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188082 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
dc1363f5af47542a602c80e726749bc06d8ef3f8 |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Make sure that if we're going to attempt to add a type to a DIE that the type exists. Fix up cases where we weren't checking for optional types and add an assert to addType to make sure we catch this in the future. Fix up a testcase that was using the tag for DW_TAG_array_type when it meant DW_TAG_enumeration_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187963 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
31667626106048c07866d996e667a3a10010ef4b |
08-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Be more rigorous about the sizes of forms and attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187953 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
fab2daa4a1127ecb217abe2b07c1769122b6fee1 |
08-Aug-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '10251753b6897adcd22cc981c0cc42f348c109de' into merge-20130807 Conflicts: lib/Archive/ArchiveReader.cpp lib/Support/Unix/PathV2.inc Change-Id: I29d8c1e321a4a380b6013f00bac6a8e4b593cc4e
|
f40d578d7e4f29fcc72fc39882014e03cd3f5bd0 |
06-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Finder|Verifier: handle DbgLoc attached to instructions. Also remove checking of llvm.dbg.sp since it is not used in generating dwarf. Current state of Finder: DebugInfoFinder tries to list all debug info MDNodes used in a module. To list debug info MDNodes used by an instruction, DebugInfoFinder provides processDeclare, processValue and processLocation to handle DbgDeclareInst, DbgValueInst and DbgLoc attached to instructions. processModule will go through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes used by the CUs. TODO: 1> Finder has a list of CUs, SPs, Types, Scopes and global variables. We need to add a list of variables that are used by DbgDeclareInst and DbgValueInst. 2> MDString fields should be null or isa<MDString> and MDNode fields should be null or isa<MDNode>. We currently use empty string or int 0 to represent null. 3> Go though Verify functions and make sure that they check field types. 4> Clean up existing testing cases to remove llvm.dbg.sp and make sure each testing case has a llvm.dbg.cu. Re-apply r187609 with fix to pass ocaml binding. vmcore.ml generates a debug location with scope being metadata !{}, in verifier we treat this as a null scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187812 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
40bacacad3dac9eb5202193f685719d0f37d7f4a |
03-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Add a AttributeSetImpl::dump function. This is for the benefit of those of us with inferior debuggers which do not permit member function calls on value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187685 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
7bba9c5c0a5235f585ee4bd3efec29e0982de3f8 |
03-Aug-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Make one of the AttributeSet ctors maintain the invariant that the attribute list is ordered by index. Differential Revision: http://llvm-reviews.chandlerc.com/D1265 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187682 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
be9f508aecfd255f47f8ea3cfe4fadbf1382ba10 |
02-Aug-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily revert "Debug Info Finder|Verifier: handle DbgLoc attached to instructions." in an attempt to bring back some bots. This reverts commit r187609. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187638 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
f589eef8645219dbcd1a4eec85ffb34a067534a6 |
01-Aug-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Finder|Verifier: handle DbgLoc attached to instructions. Also remove checking of llvm.dbg.sp since it is not used in generating dwarf. Current state of Finder: DebugInfoFinder tries to list all debug info MDNodes used in a module. To list debug info MDNodes used by an instruction, DebugInfoFinder provides processDeclare, processValue and processLocation to handle DbgDeclareInst, DbgValueInst and DbgLoc attached to instructions. processModule will go through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes used by the CUs. TODO: 1> Finder has a list of CUs, SPs, Types, Scopes and global variables. We need to add a list of variables that are used by DbgDeclareInst and DbgValueInst. 2> MDString fields should be null or isa<MDString> and MDNode fields should be null or isa<MDNode>. We currently use empty string or int 0 to represent null. 3> Go though Verify functions and make sure that they check field types. 4> Clean up existing testing cases to remove llvm.dbg.sp and make sure each testing case has a llvm.dbg.cu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187609 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
16e4ed5879da57502ea3686c79c63f86994fbe75 |
31-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Reject bitcasts between address spaces with different sizes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187506 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
5b62bb0af119f92ca9ecec2150dab898c73cfcd8 |
31-Jul-2013 |
Richard Trieu <rtrieu@google.com> |
Add parentheses to silence gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187482 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
1bf0ec4e1642a532c0121de8ccc0878d6403c9d3 |
31-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix ptr vector inconsistency in CreatePointerCast One form would accept a vector of pointers, and the other did not. Make both accept vectors of pointers, and add an assertion for the number of elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187464 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
3181f5900ff5d9800c38284c7d3427cb6e306c9a |
31-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Respect address space sizes in isEliminableCastPair. This avoids constant folding bitcast/ptrtoint/inttoptr combinations that have illegal bitcasts between differently sized address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187455 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
nstructions.cpp
|
485c7fd76b32a69c46782a715682ed8831b0873b |
31-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Revert "Remove isCastable since nothing uses it now" Apparently dragonegg uses it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187454 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
0de6832c16ce48f6546c74f6b17e27d149eebfb2 |
30-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove isCastable since nothing uses it now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187448 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
f34dc428fa577d6d5d71ab3a1f9765b4e5da5a4f |
30-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Change behavior of calling bitcasted alias functions. It will now only convert the arguments / return value and call the underlying function if the types are able to be bitcasted. This avoids using fp<->int conversions that would occur before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187444 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
fe655dc15598ebd4c8077e4a67914e7f233e0774 |
27-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Minor code simplification suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187309 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
2d69cc4baec46899cef88e14d8b9baf1c196fbcd |
27-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: verify SPs in llvm.dbg.sp. Also always add DIType, DISubprogram and DIGlobalVariable to the list in DebugInfoFinder without checking them, so we can verify them later on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187285 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
388d3225dd26d5ebe1eaf4d993eff8cf602c258f |
26-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Use more parens to clarify assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187247 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
ce0a12399c263544bb23920131bd3da60d981b38 |
26-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: enable verification of DICompileUnit. We used to call Verify before adding DICompileUnit to the list, and now we remove the check and always add DICompileUnit to the list in DebugInfoFinder, so we can verify them later on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187237 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d4afa8bbabd83e2b68afcc61e44fadb9e7964b07 |
26-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Collapse conditional and add an assert for unhandled scope types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187224 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
58376d8ede436eb1fe474bca1582a4f7afe613f9 |
26-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Re-add DataLayout pointer size convenience functions. These were reverted in r167222 along with the rest of the last different address space pointer size attempt. These will be used in later commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187223 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
956e5aa3bd32212c6902a585a367dbf58d685340 |
26-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Add a way to get the context of any particular scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187212 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
3367ed322026a475273dc676896c0d03c1e8102f |
25-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: update comments and add a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187157 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
cb420a4bc066b0b85e50b0c362ae20519d28788c |
25-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: improve the verifier to check field types. Make sure the context field of DIType is MDNode. Fix testing cases to make them pass the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187150 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
9e2ef7780b91d8e01a9ab172f80272fc94f6956b |
25-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a way to add a kind-value string pair to an attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187138 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
27ce44d3b4d2111c636fd802920dd0c35b7d6829 |
25-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: improve the verifier to check field types. Make sure the context and type fields are MDNodes. We will generate verification errors if those fields are non-empty strings. Fix testing cases to make them pass the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187106 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
2d680824e3a5272e386aa6c1d2a66676de7899fd |
25-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make these methods const correct. Thanks to Nick Lewycky for noticing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187098 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
f245ae5a4a78d5a02b3b9e2dae819077a56d81e7 |
25-Jul-2013 |
Bill Wendling <isanbard@gmail.com> |
Replace the "NoFramePointerElimNonLeaf" target option with a function attribute. There's no need to specify a flag to omit frame pointer elimination on non-leaf nodes...(Honestly, I can't parse that option out.) Use the function attribute stuff instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187093 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
504a7fb8f9499a46d7c62a691cb6fa373e23387b |
24-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: improve the Finder. Improve the Finder to handle context of a DIVariable used by DbgValueInst. Fix testing cases to make them pass the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187052 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
e6f774e7ef1a11af39a6565465355db905f59d81 |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Replace with a "null" RAUW with an assert since we'd actually like to assume we're replacing. Clarify comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187018 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
167153080bb192dc7ecb58ea41093c85a7d6a84f |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187017 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
2d3adad723653e4acd3d1b3f7fcfd2691acccb73 |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary constructors as the default conversions will handle all enumerated cases. Reformat the rest of the existing constructors to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187015 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
e72a4d4843f8f42ac6dfda6511ad6a0a57468077 |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
More constructor cleanup. Move to a single constructor with a default argument and avoid the check and nullification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187014 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
78ac65f06b0788f0cd657b2b0af5a0669322932f |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Collapse logic and move and reword comment for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187013 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
bf7644a27e517aeb24ed999a7444ab971d70693d |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Add a fixme and reformat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187012 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
7894ffd006bfabd45c75696c9b7cfdda7c7bad9d |
24-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: improve the Finder. Improve the Finder to handle context of a DIVariable. If Scope is a DICompileUnit, add it to the list of CUs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187003 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
4f2c29708d3208197f706f6e8841a2f828aea89c |
24-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187002 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d2b82e9bb37699c7571558aa5d35e00f8030028f |
24-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187001 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d2ed53c8e24ddb1e30246c918a8eabb678bd9495 |
23-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info: code cleanup, use getNodeField if possible. Use getNodeField to access a field as a MDNode. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186985 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
9fd6178dec9531fd44420e2bd121a36a1b9781fc |
23-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
DebugInfo Verifier: verify the actual type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186972 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
0e29eeec278d80048de6cf6605e004bbdefaf38c |
23-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Finder: use processDeclare and processValue to list debug info MDNodes used by DbgDeclareInst and DbgValueInst. Another 16 testing cases failed and they are disabled with -disable-debug-info-verifier. A total of 34 cases are disabled with -disable-debug-info-verifier and will be corrected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186902 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
fdd16bb91842b9cd8525d0a9202eb001233afcb5 |
22-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Finder: add processScope to actually handle the Scope. Instead of just adding the scope to the list, we actually handle the scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186867 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
5f53c3be6fce77d494e82f23d5ea0b6a0144eb5d |
20-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Disallow global aliases to bitcast between address spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186767 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
3f49322818a3f2b9ca6fe75f49c7541c8dfb538d |
20-Jul-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove trailing whitespace, fix file path in comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186766 91177308-0d34-0410-b5e6-96231b3b80d8
utoUpgrade.cpp
erifier.cpp
|
96ea03839becf151b2eda518b4bc55b84f6373bf |
20-Jul-2013 |
Manman Ren <manman.ren@gmail.com> |
Debug Info Verifier: simplify DIxxx::Verify Simplify DIxxx:Verify to not call Verify on an operand. Instead, we use DebugInfoFinder to list all MDNodes that should be a DIScope and all MDNodes that should be a DIType and we will call Verify on those lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186737 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
70968319719fbfb00a58ebcf82b1e18ec04be5be |
19-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
s/compiler_used/compiler.used/. We were incorrectly using compiler_used instead of compiler.used. Unfortunately the passes using the broken name had tests also using the broken name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186705 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
1fe3f9af7ff385c28b96cc46ee1ed3737c813c3a |
19-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove DIBuilder cache of variable TheCU and change the few uses that wanted it. Also change the interface for createCompileUnit to compensate. Fix comments that refer to TheCU as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186637 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
cd26257c85ba52d83b3febcef5c40c5153836062 |
19-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: enable verifying by default and disable testing cases that fail. 1> Use DebugInfoFinder to find debug info MDNodes. 2> Add disable-debug-info-verifier to disable verifying debug info. 3> Disable verifying for testing cases that fail (will update the testing cases later on). 4> MDNodes generated by clang can have empty filename for TAG_inheritance and TAG_friend, so DIType::Verify is modified accordingly. Note that DebugInfoFinder does not list all debug info MDNode. For example, clang can generate: metadata !{i32 786468}, which will fail to verify. This MDNode is used by debug info but not included in DebugInfoFinder. This MDNode is generated as a temporary node in DIBuilder::createFunction Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) }; MDNode::getTemporary(VMContext, TElts) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186634 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
erifier.cpp
|
7c05da187c9fd7ac83b97ecbe207b88a711667da |
18-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "Remove DIBuilder cache of variable TheCU and change the few" This reverts commit r186599 as I didn't want to commit this yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186601 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
6abb4d2ef28f2c688498a10dfe0e4bd1b36882e3 |
18-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Remove DIBuilder cache of variable TheCU and change the few uses that wanted it. Also change the interface for createCompileUnit to compensate. Fix comments that refer to TheCU as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186599 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
c8cfaa1625a72aa3660a268dae753748cfed67d0 |
17-Jul-2013 |
Manman Ren <mren@apple.com> |
Add getModuleFlag(StringRef Key) to query a module flag given Key. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186470 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
a0ec3f9b7b826b9b40b80199923b664bad808cce |
14-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
etadata.cpp
|
ac226bbf457f6b5e5210a4a82b1ce678298b2d89 |
12-Jul-2013 |
Charles Davis <cdavis5x@gmail.com> |
Target/X86: Add explicit Win64 and System V/x86-64 calling conventions. Summary: This patch adds explicit calling convention types for the Win64 and System V/x86-64 ABIs. This allows code to override the default, and use the Win64 convention on a target that wants to use SysV (and vice-versa). This is needed to implement the `ms_abi` and `sysv_abi` GNU attributes. Reviewers: CC: git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186144 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
e22cde01a63c907cb23f425ba4f4f16ede754dbe |
11-Jul-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce the number of indirections in the attributes implementation. - Coallocate entires for AttributeSetImpls and Nodes after the class itself. - Remove mutable iterators from immutable classes. - Remove unused context field from AttributeImpl. - Derive Enum/Align/String attribute implementations from AttributeImpl instead of having a whole new inheritance tree for them. - Derive AlignAttributeImpl from EnumAttributeImpl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186075 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
10050d19e857396e65289c05ce9714e0a570deed |
11-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Don't assert if we can't constant fold extract/insertvalue A non-constant-foldable static initializer expression containing insertvalue or extractvalue had been causing an assert: Constants.cpp:1971: Assertion `FC && "ExtractValue constant expr couldn't be folded!"' failed. Now we report a more-sensible "Unsupported expression in static initializer" error instead. Fixes PR15417. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186044 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
7bb386a299a7ccee998654dc7f000f66dd3acbbf |
09-Jul-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "DebugInfo: remove unused helper function getDICompositeType." This reverts commit r185876 as the functions appear to still be used by dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185890 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
6cf7246ecaf058733fdf8fa47896907204839f68 |
08-Jul-2013 |
Manman Ren <mren@apple.com> |
DebugInfo: remove unused helper function getDICompositeType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185876 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
dc89737bcdbb8f69d8ae7578bdfa904cabcfc5ed |
06-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Extend 'readonly' and 'readnone' to work on function arguments as well as functions. Make the function attributes pass add it to known library functions and when it can deduce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185735 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
unction.cpp
erifier.cpp
|
09bb56f0a0bb098faf076e54ee84221c1fd9fefa |
05-Jul-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Consider global variables without locations to be valid We were being a bit too aggresive here in classifying global variables with no global reference or constant value to be invalid - this would cause LLVM to not emit the DWARF description of the global variable if it had been optimized away, which isn't helpful for users who might benefit from the global variable's description even if there's no location information. This also fixes a crasher issue here that I was unable to reduce a test case for - involving a using decl (& subsequent DW_TAG_imported_declaration ) of such a global variable that, once optimized away, would crash when an attempt to emit the imported declaration was made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185675 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
6227d5c690504c7ada5780c00a635b282c46e275 |
04-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185606 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
COV.cpp
|
40488cf13973dc5364f017c1a403fe93e6c46d6f |
03-Jul-2013 |
Chad Rosier <chad.rosier@gmail.com> |
Use an RWMutex instead of a Mutex in PassRegistry. Patch by Alex Crichton <alex@crichton.co>. Approved by Chris Lattner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185566 91177308-0d34-0410-b5e6-96231b3b80d8
assRegistry.cpp
|
365ef0b197d7c841f8e501da64296df65be4ca23 |
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185540 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
88328d2ff47670314a1007a4c81c42adf026ee9f |
02-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185456 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
068acc549547bebefd40e1dffb505d1a4477572d |
02-Jul-2013 |
Tobias Grosser <grosser@fim.uni-passau.de> |
IRVerifier: Correctly check attribute types Add missing parenthesis such that all and not only the very first attribute is checked. Testing this piece of code is not possible with an LLVM-IR test file, as the LLVM-IR parser has a similar check such that the wrong IR does not even arrive at the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185408 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
89c83b76329ad8eb383a72f14e03dd13b5d780b7 |
01-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185383 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
c7b61c638b912eaa7f85c7794589a253a3669162 |
01-Jul-2013 |
Manman Ren <mren@apple.com> |
Debug Info: Scope of a DebugLoc should not be null. No functionality change. Remove handling for the null case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185354 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
80c070493d657a4bcc6eca5627c28d659d3330d8 |
30-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFold: Check that truncating the other side is safe under a sext when trying to remove a sext from a compare. Fixes PR16462. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185284 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
da91817d40dad85a15e0f2a7e11d4d302949586b |
29-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185249 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
2d6e3bd8814db99c70aba5c2163825b92f9ed4b8 |
29-Jun-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix extra whitespace / formatting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185238 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
03ccdb5b1dbb95714f2fd86540292567c8442a6b |
28-Jun-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Rename DIBuilder::createNullPtrType to createUnspecifiedType and introduce a zero-argument createNullPtrType function for creating the canonical nullptr type. Differential Revision: http://llvm-reviews.chandlerc.com/D1050 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185114 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
2253a2f52f3c46ae75cd05f5885acb987bd1d6b6 |
27-Jun-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added support for the Builtin attribute. The Builtin attribute is an attribute that can be placed on function call site that signal that even though a function is declared as being a builtin, rdar://problem/13727199 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185049 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
nstructions.cpp
erifier.cpp
|
a7e4d19dac9f9fbe9fa83ccb49a622e80a079b6a |
26-Jun-2013 |
Adrian Prantl <aprantl@apple.com> |
s/C++0x/C++11/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184892 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
a37d96a04b44b98dff5fbb4d5d1427bacb57c651 |
25-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
The GCDA 402 format won't have a second checksum either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184864 91177308-0d34-0410-b5e6-96231b3b80d8
COV.cpp
|
e06db0c6f83c284814a89d5b9792cba7209977d9 |
24-Jun-2013 |
Adrian Prantl <aprantl@apple.com> |
typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184783 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
8de0a465b832052d975dc9fdced1adcf3336fabc |
24-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: DIBuilder changes to match DIEnumerator changes in r184694 Representing enumerators by int64 instead of uint64 for now. At some point we need to address the underlying issue of representation depending on the specific enumeration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184761 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
e88939cfebbc98133553c6fc03a52b8fb1adbb70 |
22-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Support (using GNU extensions) for template template parameters and parameter packs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184643 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
e954d98394c257b98b24e7ad43d4f5d1bffe09b1 |
21-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: When asm printing include a '[def]' tag for tag decls that are definitions (& rename the 'fwd' tag to 'decl' for clarity) This change is version locked with a change in Clang, so expect some transient buildbot fallout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184525 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
07969dc8aed62fcd5c5760b2ec331275479f4a80 |
19-Jun-2013 |
Michael Gottesman <mgottesman@apple.com> |
[APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero. Turns out all the references were in llvm and not in clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184356 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
f2db8dfa84ead80df2e0ca8a56e9f0ae18d67a5e |
18-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
We want a string representation of the attribute, not the kind as a string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184239 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
c06e5cf2e3724762a6c9830a00395736ec07d81a |
13-Jun-2013 |
Derek Schuff <dschuff@google.com> |
Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses This pass was assuming that if hasAddressTaken() returns false for a function, the function's only uses are call sites. That's not true because there can be references by BlockAddresses too. Fix the pass to handle this case. Fix BlockAddress::replaceUsesOfWithOnConstant() to allow a function's type to be changed by RAUW'ing the function with a bitcast of the recreated function. Patch by Mark Seaborn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183933 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
1878f9a7874b1ff569d745c0269f49d3daf7203d |
12-Jun-2013 |
Stephen Hines <srhines@google.com> |
Merge commit '100fbdd06be7590b23c4707a98cd605bdb519498' into merge_20130612
|
9f8e6da019a99960af59c79e17659dd2dba8433e |
11-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Require members of llvm.used to be named. The effect of llvm.used is to introduce an invisible reference, so this seems a reasonable restriction. It will be used to provide an easy ordering of the entries in llvm.used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183743 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
576d49a775043931d81bba172b9b11f40d858cb6 |
07-Jun-2013 |
Manman Ren <mren@apple.com> |
DIBuilder: No functionality change. Use the correct DIType when creating types in DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183543 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
37bfb18f8f0557611fbdf238abe200813f07d298 |
07-Jun-2013 |
Manman Ren <mren@apple.com> |
DIBuilder: No functionality change. Use the correct DIType when creating vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183484 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
7c2b4be2a718b994298803dd09e81e49a016ffb2 |
01-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move getRealLinkageName to a common place and remove all the duplicates of it. Also simplify code a bit while there. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183076 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
6dd56e60b002e5f3317bcc461be7fb8f6b19bbf5 |
01-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move object construction into [] so the temporary can be moved. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183075 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
88c744083d6cf5f4810c1e9fe457a212bb24d432 |
29-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Simplify logic by using the appropriate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182869 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
af10fe63c6b0246635e50f480abbf3d679f69246 |
28-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make it explicit that GlobalAlias are ok in llvm.used. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182747 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
77226a03dca98e6237c1068f2652fe41bea7b687 |
24-May-2013 |
Diego Novillo <dnovillo@google.com> |
Add a new function attribute 'cold' to functions. Other than recognizing the attribute, the patch does little else. It changes the branch probability analyzer so that edges into blocks postdominated by a cold function are given low weight. Added analysis and code generation tests. Added documentation for the new attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182638 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
f8c243abba01d9d4fe53f7ab962139593f184400 |
24-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Re-implement DebugIR in a way that does not subclass AssemblyWriter: - move AsmWriter.h from public headers into lib - marked all AssemblyWriter functions as non-virtual; no need to override them - DebugIR now "plugs into" AssemblyWriter with an AssemblyAnnotationWriter helper - exposed flags to control hiding of a) debug metadata b) debug intrinsic calls C/R: Paul Redmond git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182617 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
smWriter.h
|
3d33184d9da02fb699827249e0631106252f72fa |
23-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Solidify the assumption that a DW_TAG_subprogram's type is a DW_TAG_subroutine_type There were bits & pieces of code lying around that may've given the impression that debug info metadata supported the possibility that a subprogram's type could be specified by a non-subroutine type describing the return type of a void function. This support was incomplete & unnecessary. Asserts & API have been changed to make the desired usage more clear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182532 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
6cfed36338d7728076ddbc1331908b887a4302d3 |
22-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
Expose the RTDyldMemoryManager through the C API. This allows clients of the C API to provide their own way of allocating JIT memory (both code and data) and finalizing memory permissions (page protections, cache flush). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182448 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
1441bf7a41b50075cf761cbc794ce3fd0b5762fc |
21-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
Roll out r182407 and r182408 because they broke builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182409 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
52755c472a738e48a9687240368e4c1f78c45711 |
21-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
Expose the RTDyldMemoryManager through the C API. This allows clients of the C API to provide their own way of allocating JIT memory (both code and data) and finalizing memory permissions (page protections, cache flush). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182408 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
7b72cc7782716f469eb1b0963423a5b414215705 |
21-May-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14606: Debug Info for namespace aliases/DW_TAG_imported_module This resolves the last of the PR14606 failures in the GDB 7.5 test suite by implementing an optional name field for DW_TAG_imported_modules/DIImportedEntities and using that to implement C++ namespace aliases (eg: "namespace X = Y;"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182328 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
24623dcd249939cfa35af4771b61aa47a5cbffc8 |
18-May-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove duplicated comment The same comment is already made in the header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182181 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
2aa6db98df22ea328fbf49018cd0473e56a9ec4b |
16-May-2013 |
Eli Bendersky <eliben@google.com> |
Remove dead code. This method is not being used/tested anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181943 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
a88d974ce274152d2f8f28660ba277906bde2384 |
15-May-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Speed up Value::isUsedInBasicBlock() for long use lists. This is expanding Ben's original heuristic for short basic blocks to also work for longer basic blocks and huge use lists. Scan the basic block and the use list in parallel, terminating the search when the shorter list ends. In almost all cases, either the basic block or the use list is short, and the function returns quickly. In one crazy test case with very long use chains, CodeGenPrepare runs 400x faster. When compiling ARMDisassembler.cpp it is 5x faster. <rdar://problem/13840497> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181851 91177308-0d34-0410-b5e6-96231b3b80d8
alue.cpp
|
4de9d72883eebe4e86bffdaad89483dfe822e2a5 |
10-May-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14492: Debug Info: Support for values of non-integer non-type template parameters. This is only tested for global variables at the moment (& includes tests for the unnamed parameter case, since apparently this entire function was completely untested previously) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181632 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
13ace6664fad8b4d0277d16690674f4e1f176642 |
08-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Add DebugIR pass -- emits IR file and replace source lines with IR lines in MD - requires existing debug information to be present - fixes up file name and line number information in metadata - emits a "<orig_filename>-debug.ll" succinct IR file (without !dbg metadata or debug intrinsics) that can be read by a debugger - initialize pass in opt tool to enable the "-debug-ir" flag - lit tests to follow git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181467 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d0fef32e5f3700c7de6dfc50a1a3815659b7d19e |
08-May-2013 |
Daniel Malea <daniel.malea@intel.com> |
Pull up AssemblyWriter interface into header to allow subclassing - made all functions virtual so that subclasses can specialize them - add printInstructionLine so that subclasses can choose whether or not to print the newline character (without having to implement printBasicBlock() - added a second constructor to AssemblyWriter that does not require a SlotTracker, as required in order to keep the SlotTracker helper class outside AsmWriter.h and buried in the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181466 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
20d9e41ddb3f531267680819b5cac4cac1c6b231 |
07-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Rename DIImportedModule to DIImportedEntity and allow imported declarations DIBuilder::createImportedDeclaration isn't fully plumbed through (note, lacking in AsmPrinter/DwarfDebug support) but this seemed like a sufficiently useful division of code to make the subsequent patch(es) easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181364 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
eaf14786ca3975266ed7041ac242122c02baf1cf |
06-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix const merging when an alias of a const is llvm.used. We used to disable constant merging not only if a constant is llvm.used, but also if an alias of a constant is llvm.used. This change fixes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181175 91177308-0d34-0410-b5e6-96231b3b80d8
alue.cpp
|
5c332dbd30d9398ed25b30c3080506f7b8e92290 |
05-May-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add ArrayRef constructor from None, and do the cleanups that this constructor enables Patch by Robert Wilhelm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181138 91177308-0d34-0410-b5e6-96231b3b80d8
onstantsContext.h
assManager.cpp
ype.cpp
|
38578c4919ea18ceb27e29988b2d857afe6215bf |
03-May-2013 |
Stephen Hines <srhines@google.com> |
Merge remote-tracking branch 'upstream/master' into merge-20130502 Conflicts: lib/Support/Unix/Signals.inc unittests/Transforms/Utils/Cloning.cpp Change-Id: I027581a4390ec3ce4cd8d33da8b5f4c0c7d372c8
|
40be1e85665d10f5444186f0e7106e368dd735b8 |
01-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
This patch breaks up Wrap.h so that it does not have to include all of the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/. This new file just contains the macros for defining different wrap/unwrap methods. The calls to those macros, as well as any custom wrap/unwrap definitions (like for array of Values for example), are put into corresponding C++ headers. Doing this required some #include surgery, since some .cpp files relied on the fact that including Wrap.h implicitly caused the inclusion of a bunch of other things. This also now means that the C++ headers will include their corresponding C API headers; for example Value.h must include llvm-c/Core.h. I think this is harmless, since the C API headers contain just external function declarations and some C types, so I don't believe there should be any nasty dependency issues here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180881 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
aae0298921d946a64385052ce6e678d36f936fb3 |
01-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Now that the underlying issue is fixed, revert r180750 and r180722. The cause of the windows failures was fixed by r180791. Revert to the state after Sabre's original revert. Original message: revert r179735, it has no testcases, and doesn't really make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180844 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
|
76f103e02164d27b41bd92a9767c7012482ba31a |
30-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change getSlotIndex to return unsigned. The actual storage was already using unsigned, but the interface was using uint64_t. This is wasteful on 32 bits and looks to be the root causes of a miscompilation on Windows where a value was being sign extended to 64bits to compare with the result of getSlotIndex. Patch by Pasi Parviainen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180791 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
725dae57916800c7371c5008bd451fb3edb273b2 |
30-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert the command line option patch. However, keep the part that makes this pass on Windows. I.e., we don't emit the target dependent attributes in a comment before the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180750 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributes.cpp
|
f2e83499fcc41484cb5dac073c4fe87525926d2b |
29-Apr-2013 |
Reid Kleckner <reid@kleckner.net> |
Revert "revert r179735, it has no testcases, and doesn't really make sense." This un-reverts r179735 and reverts commit r180574. This fixes assertion failures for me locally and should fix the failures on Windows reported widely on llvm-dev. We should check if the bots caught this and if so why not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180722 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
|
29fce9ad39636d38f43add5d7c23e83d9d1cc249 |
25-Apr-2013 |
Chris Lattner <sabre@nondot.org> |
revert r179735, it has no testcases, and doesn't really make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180574 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
|
13aba14eb5c643234f5d756b94f30afb28f8cd5d |
23-Apr-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Add some constraints to use of 'returned': 1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell). 2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe). This is a new attribute that is not yet used, so there is no impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180118 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
8effd8dc98a793181b086dbfde31cdcbd2047200 |
23-Apr-2013 |
Carlo Kok <ck@remobjects.com> |
Expose IRBuilder::CreateAtomicRMW as LLVMBuildAtomicRMW in llvm-c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180100 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
2ff97832e593926ea8dbdd5fc5bcf367475638a9 |
23-Apr-2013 |
Manman Ren <mren@apple.com> |
Struct-path aware TBAA: update getMostGenericTBAA The tag is of type TBAANode when flag EnableStructPathTBAA is off. Move implementation of MDNode::getMostGenericTBAA to TypeBasedAliasAnalysis.cpp since it depends on how to interprete the MDNodes for scalar TBAA and struct-path aware TBAA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180068 91177308-0d34-0410-b5e6-96231b3b80d8
etadata.cpp
|
3e39731e88f2d4f597cebc74388fd6650ca4f604 |
23-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Move C++ code out of the C headers and into either C++ headers or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180063 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
97bf57d488a1bfcf7128cc2dbc695f6901ae9be7 |
22-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Also verify llvm.compiler_used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180020 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
cde25b435a907e7741da0c0d18953850936277c4 |
22-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Clarify that llvm.used can contain aliases. Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180019 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
c462db6d66e683fb837c03d661483106a869a407 |
22-Apr-2013 |
David Blaikie <dblaikie@gmail.com> |
Revert "Revert "PR14606: debug info imported_module support"" This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even though the debug info was clearly invalid on all of them, but this ought to fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179996 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
456ca048af35163b9f52187e92a23ee0a9f059e8 |
20-Apr-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179925 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
unction.cpp
erifier.cpp
|
09b798180340487e4397069e9fa22568099fd9b6 |
19-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179881 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
2f445be5a75b4d1a907dd694c9e5c518229df48e |
19-Apr-2013 |
Adrian Prantl <aprantl@apple.com> |
Rename ClassType to the more accurate UnderlyingType and document its purpose. rdar://problem/13463793 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179877 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
e94e4ca5fd94de185a840e9237b3b483f62342a8 |
19-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Attributes: Don't print trailing whitespace on the function attribute comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179849 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
41201ed06fa4fb246f5a7e9e2b62168814eca6ff |
19-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Revert "PR14606: debug info imported_module support" This reverts commit r179836 as it seems to have caused test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179840 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
bcb81360a26cba066fae3acbe25b8ac161af6881 |
19-Apr-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14606: debug info imported_module support Adding another CU-wide list, in this case of imported_modules (since they should be relatively rare, it seemed better to add a list where each element had a "context" value, rather than add a (usually empty) list to every scope). This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll need to expand this to cover DW_TAG_imported_declaration too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179836 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
a88a016f2d99488f2eff0eb6be256f2f43602afa |
18-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Make the TargetIndependent flag have the right boolean value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179798 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributes.cpp
|
8a6a7bb6a601061031cddd77129532a3b467300b |
18-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Cleanup patch: Semantics of parameters named Index and Idx were inconsistent between "include/llvm/IR/Attributes.h", "lib/IR/AttributeImpl.h" and "lib/IR/Attributes.cpp": sometimes these were fixed 1-based indexes of IR parameters (or AttributeSet::ReturnIndex for IR return values or AttributeSet::FunctionIndex for IR functions), other times they were the internal slot for storage in the underlying AttributeSetImpl. I renamed usage of the former to "Index" and usage of the latter to "Slot" ("Slot" was already being used consistently for the latter in a subset of cases) Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179791 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
bb1b63c48397a3bac5d00f2ac9d33cc14efd714c |
18-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
This patch addresses two cleanup issues: 1. Verify::VerifyParameterAttrs in "lib/IR/Verifier.cpp" and AttrBuilder::removeFunctionOnlyAttrs in "lib/IR/Attributes.cpp" (only called by Verify::VerifyFunctionAttrs) separately maintained a list of function-only attribute types. I've consolidated the logic into a new function used for both cases in "lib/IR/Verifier.cpp", so this logic is in one place (other than the AsmParser front-end) 2. Various functions in "lib/IR/Verifier.cpp" passed AttributeSet around by reference needlessly, as it's just a handle to an immutable pimpl body. Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179790 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
4bfeee1302eaeb6cf8f4248e3bb4fdf31a11dce1 |
18-Apr-2013 |
Tom Stellard <thomas.stellard@amd.com> |
C API: Fix coding style git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179785 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
b1ac6e617291e2a628bc460933bde97c73466cb0 |
18-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Add an option `-enable-old-style-attr-syntax' to print out function attributes in the "old" style. It's sometimes beneficial to emit a testcase with the old style attribute syntax. Allow someone to do this. <rdar://problem/13563209> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179735 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
|
403569373f1e63cc96ea8274b18088bf7ff17bd6 |
17-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Appease a gcc warning about an overflow in a constant conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179703 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
a73dd3e575761fa4559edfd0d3550b3820c1c68d |
17-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't store AttributeSet::FunctionIndex as an int. GCC complains: Core.cpp:1449:27: warning: overflow in implicit constant conversion [-Woverflow] I'm not sure if that's really a problem here, but using the enum type is better style anyways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179696 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
2ca02c655d158b2c4aaf004c597073adf67b8967 |
17-Apr-2013 |
David Blaikie <dblaikie@gmail.com> |
PR15149/r174304 improvement - print hex for unknown dwarf language codes & add a test case CR feedback from Rafael Espindola and Paul Robinson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179664 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
edc93b356da17d404467d47456bb27b99c775e39 |
17-Apr-2013 |
Tom Stellard <thomas.stellard@amd.com> |
C API: Add LLVMGetBufferSize() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179647 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
4074343b2d9bec7a70c500b2f62b3cd63b44f8c9 |
17-Apr-2013 |
Tom Stellard <thomas.stellard@amd.com> |
C API: Add LLVMGetBufferStart() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179646 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
68ee1520ce777871353e33fcc63725439e611f4e |
17-Apr-2013 |
Tom Stellard <thomas.stellard@amd.com> |
C API: Add LLVMAddTargetDependentFunctionAttr() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179645 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
634054947c87502e29c0610eb9b378515b768814 |
16-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
Print out the target-independent attributes in a comment before the function definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179622 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
6b51f75cc58b5a431cfb9e808f27f1fc4432913e |
16-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Cleanup naming: DataLayout s/TD/DL/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179601 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
6334e1351f8f7bb58b3399d7c001eed0a32e1c64 |
16-Apr-2013 |
Hans Wennborg <hans@hanshq.net> |
Add four new functions and one new enum to the C API: LLVMGetThreadLocalMode - exposes GlobalVariable::getThreadLocalMode LLVMSetThreadLocalMode - exposes GlobalVariable::setThreadLocalMode LLVMIsExternallyInitialized - exposes GlobalVariable::isExternallyInitialized LLVMSetExternallyInitialized - exposes GlobalVariable::setExternallyInitialized LLVMThreadLocalMode - maps to GlobalVariable::ThreadLocalMode Patch by Moritz Maxeiner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179588 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
8848680ce0ab416cb646d0a03aa6f4f6f25e7623 |
13-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a scalability issue with complex ConstantExprs. This is basically the same fix in three different places. We use a set to avoid walking the whole tree of a big ConstantExprs multiple times. For example: (select cmp, (add big_expr 1), (add big_expr 2)) We don't want to visit big_expr twice here, it may consist of thousands of nodes. The testcase exercises this by creating an insanely large ConstantExprs out of a loop. It's questionable if the optimizer should ever create those, but this can be triggered with real C code. Fixes PR15714. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179458 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
71c1b228552ece06003d744b815f669dbfbb0772 |
12-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a disconcerting bug in Value::isUsedInBasicBlock, which gave wrong answers for blocks larger than 3 instrs. Also add a unit test. PR15727. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179370 91177308-0d34-0410-b5e6-96231b3b80d8
alue.cpp
|
1629965964b0e5c786c16b5af15f1d53059183ed |
03-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Measure time that IR parsing took as part of the -time-passes measurement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178662 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
c656fda3aeba9fd8b09d98ed72e75b6c25a1ad49 |
03-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Support and test template arguments for unions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178586 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
cf0623bba4abb8612a61229e672ac8ea8ed20c4e |
03-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Reformat arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178585 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
72dfb052ab74a9e642256212a50c9b805ce5c943 |
28-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Revert "Adding DIImportedModules to DIScopes." This reverts commit 342d92c7a0adeabc9ab00f3f0d88d739fe7da4c7. Turns out we're going with a different schema design to represent DW_TAG_imported_modules so we won't need this extra field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178215 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
354504320b4984eebf918bec02dc4c248e0b309b |
27-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178155 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
2b393fb134c621a7f0824eaea35ad94eae7da062 |
27-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence warning about mixing || in &&, fix up 80-cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178144 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
342d92c7a0adeabc9ab00f3f0d88d739fe7da4c7 |
27-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Adding DIImportedModules to DIScopes. This is just the basic groundwork for supporting DW_TAG_imported_module but I wanted to commit this before pushing support further into Clang or LLVM so that this rather churny change is isolated from the rest of the work. The major churn here is obviously adding another field (within the common DIScope prefix) to all DIScopes (files, classes, namespaces, lexical scopes, etc). This should be the last big churny change needed for DW_TAG_imported_module/using directive support/PR14606. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178099 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
ca442a4a1aabf6199e5aee09ec604e79916d9b92 |
27-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Make DIBuilder::createClassType more type safe by returning DICompositeType rather than DIType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178091 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
f34ea642e6402538f217db67a734a8530a36eed0 |
27-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: more support for mutating DICompositeType to reduce magic number usage in Clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178090 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
d072a166d6c77ebcfb4fde796e0784a56020b9a4 |
26-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Provide a means to update the members of a composite type This will be used to factor out some uses of magic number operand offsets inside Clang where these fields were updated in an effort to resolve forward declarations/circular references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178078 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
8faed2745c849fb35f6edf411263dfa564ef3643 |
22-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Swap the DIFile in DILexicalBlockFile out for the raw name/directory pair This is the last change in transitioning all DIScopes to have a common prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177756 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
7b246860bdf4c6b3ea4e09f6437537941cc0d1d4 |
22-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
reorder the fields in DILexicalBlockFile to match the common prefix for DIScopes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177754 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
1ca6468c0518b2c2dcd69c68b2099ae93f57f8f9 |
22-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert r177675. This is language-specific and shouldn't be in the API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177748 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
4b52a88e90b341ff2a3d1dbad6eb5ea731228156 |
22-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Refactor out the DIFile parameter to DILexicalBlock to refer to the raw file/directory pair git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177742 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
2be921adc41fb079ce25d36bdd6402ca70d56451 |
22-Mar-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
InstCombine: Improve the result bitvect type when folding (cmp pred (load (gep GV, i)) C) to a bit test. The original code used i32, and i64 if legal. This introduced unneeded casts when they aren't legal, or when the index variable i has another type. In order of preference: try to use i's type; use the smallest fitting legal type (using an added DataLayout method); default to i32. A testcase checks that this works when the index gep operand is i16. Patch by : Ahmed Bougacha <ahmed.bougacha@gmail.com> Reviewed by : Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177712 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
c204410d6bc435e7cb8ea768759a54135e8e92b5 |
22-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Reorder the DIFile field in DILexicalBlock to become a prefix common with other DIScopes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177703 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
bb4e619cd9ff34708e3baaf0aac70275a917e0ba |
22-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Refactor the filename/directory information in DISubprogram to refer directly to the pair rather than the DIFile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177677 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
8233050895f781befc1d4165435d0fff605b6b70 |
22-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a query to tell if a landing pad has a catch-all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177675 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
ced228dec30f088367d622720d6ccf7a22cd11e4 |
21-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Move the DIFile in DISubprogram to the beginning to be a common prefix along with other DIScopes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177674 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
ebb5183a2f16abc7c88241bb42412465f52c2a61 |
21-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unused field in DISubprogram git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177661 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
c57f5dd8bd399667d2b93d3ca05f47feae17629c |
21-Mar-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Hoist the definition of getTypeSizeInBits to be inlinable and in the header. This method is called in the hot path for *many* passes, SROA is what caught my interest. A common pattern is that which branch of the switch should be taken is known in the callsite and so it is a very good candidate for inlining and simplification. Moving it into the header allows the optimizer to fold a lot of boring, repeatitive code in callers of this routine. I'm seeing pretty significant speedups in parts of SROA and I suspect other passes will see similar speedups if they end up working with type sizes frequently. I've not seen any significant growth of the binaries as a consequence, but let me know if you see anything suspicious here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177632 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
00c5c5d46731834caa0ca3280e0dcc43202dd3c8 |
21-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug info: refactor the first field of DICompileUnit to be a raw file/directory pair This removes the DICompileUnit special case from DIScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177610 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
2adf8ccbf0611df6393c30737d87faaf38cdcd0c |
21-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Use pre-inc, pre-dec when possible. They are generally faster (at least not slower) than post-inc, post-dec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177608 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
162c800384353b639aa5bc94242e6307dcfae2d3 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Swap the 2nd and 3rd parameters to DICompileUnit to match the common DIScope prefix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177595 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
404ecce8903f83271c82e368c834a9697799c296 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unused field in DICompileUnit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177590 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
1ac186e009af8496df3ecd2c5ad4918d5c53a0a3 |
20-Mar-2013 |
Chris Lattner <sabre@nondot.org> |
minor code style cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177576 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
|
6115ed0e4347f17504f72e4d37545b4230b2cb50 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Refactor file/directory path in namespace debug info to refer directly to the pair rather than the DIFile (paired to a Clang test - excuse the buildbot skew/fallout) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177566 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
3fac43d8b4111feca59d77941ac2ebd1f858dd33 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
DIBuilder: allow linkage name to be specified for global variables Patch by Kai Nacke (kai@redstar.de) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177547 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
4cf132fccd8338f9aab4bd34a2f0108a13f46d6c |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Reorder the DIFile parameter in DINameSpace Moving the DIFile parameter to immediately proceed the tag so that it will be a common prefix with other DIScopes (once the DIFile is replaced with the raw file/directory pair). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177492 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
1cd30fd994aa8825c10d073f0f1ae9c6ba358ae4 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Provide more details for DINameSpace debug info in the IR comment annotations Sorry for the version skew - I should've committed this before the corresponding Clang test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177486 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
4776bce28cb7d669329222c3d9cf6a97d6881c96 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Refactor the DIFile (2nd) parameter to DITypes to be an MDNode reference to a raw directory/file pair This makes DIType's first non-tag parameter the same as DIFile's, allowing them to both share the common implementation of getFilename/getDirectory in DIScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177467 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
a13f3cdb01c4900528018eebfe1b6c98dc607f99 |
20-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Move the DIFile operand to DITypes from the 4th operand to the 2nd. This is another step along the way to making all DIScopes have a common prefix which can be added to in a general manner to support using directives (DW_TAG_imported_module). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177462 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
974cdfb17a08abae3ba5850bc1a1c801f41319c1 |
19-Mar-2013 |
David Tweed <david.tweed@arm.com> |
The testing to ensure a vector of zeros of type floating point isn't misclassified as negative zero can be simplified, as pointed out by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177386 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
2d4629c5d7dcc6582fa7b85a517744f1a3654eba |
19-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge branch 'upstream' into merge_2013_03_18
|
ec7eb55cc4c35318ff0ec4e04c0d42e5a65e1811 |
18-Mar-2013 |
David Tweed <david.tweed@arm.com> |
The optimization a + (-0.0f) -> a was being misapplied to a + (+0.0f) in the vector case (because we weren't differntiating floating-point zeroinitializers from other zero-initializers) which was causing problems for code relying upon a + (+0.0f) to, eg, flush denormals to 0. Make the scalar and vector cases have the same behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177279 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
4d0cdca6f6e73c38115cfd1e9770cb78006077d6 |
17-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix the build broken in r177239 Seems some accidental C++11 crept in there. Reported by the C++98 buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177241 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
b4cf0ab22b5a3ebb720f0b7287fdccfb465b6b7c |
17-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Split out filename & directory from DIFile to start generalizing over DIScopes This is the first step to making all DIScopes have a common metadata prefix (so that things (using directives, for example) that can appear in any scope can be added to that common prefix). DIFile is itself a DIScope so the common prefix of all DIScopes cannot be a DIFile - instead it's the raw filename/directory name pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177239 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
e0805a992ddd2823604969c8aac61a2f339f3c01 |
13-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove the unused 4th operand for DIFile debug info metadata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176983 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
9106f73246168fb30d26fb14085c0b3d81fcd350 |
13-Mar-2013 |
Reed Kotler <rkotler@mips.com> |
Add some additonal attribute helper functions. Test will be on follow up putback to clang for mips16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176968 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
de3077ae6b5ad8e6f417a8f6aa0ca1ae980f6272 |
13-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Refactor filename/directory in DICompileUnit into a DIFile This is the next step towards making the metadata for DIScopes have a common prefix rather than having to delegate based on their tag type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176913 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
46561ce249984ddea405ce837b53367a59fd9f3b |
12-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unused "isMain" field from DICompileUnit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176910 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
14891447fff5b9a5980c1728fbe15140b6350ae3 |
12-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Update debug info test cases with empty SplitDebugFilename field. This could be 'null' or the empty string, DIDescriptor::getStringField coalesces the two cases anyway so it's just a matter of legible/efficient representation. The change in behavior of the DICompileUnit::get* functions could be subsumed by the full verification check - but ideally that should just be an assertion if we could front-load the actual debug info metadata failure paths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176907 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
8f8af529fc6239985f73a4b3cf3a0b25692824ed |
12-Mar-2013 |
Pete Cooper <peter_cooper@apple.com> |
Add a doFinalization method to the DataLayout pass. This pass is meant to be immutable, however it holds mutable state to cache StructLayouts. This method will allow the pass manager to clear the mutable state between runs. Note that unfortunately it is still necessary to have the destructor, even though it does the same thing as doFinalization. This is because most TargetMachines embed a DataLayout on which doFinalization isn't run as its never added to the pass manager. I also didn't think it was necessary to complication things with a deInit method for which doFinalization and ~DataLayout both call as there's only one field of mutable state. If we had more fields to finalize i'd have added this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176877 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
c0ec8a4f4db3c579dfc8c219dc39014f34260b42 |
12-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove support for versioned debug info. Versioned debug info support has been a burden to maintain & also compromised current debug info verification by causing test cases testing old debug info to remain rather than being updated to the latest. It also makes it hard to add or change the metadata schema by requiring various backwards-compatibility in the DI* hierarchy. So it's being removed in preparation for new changes to the schema to tidy up old/unnecessary fields and add new fields needed for new debug info (well, new to LLVM at least). The more surprising part of this is the changes to DI*::Verify - this became necessary due to the changes to AsmWriter. AsmWriter was relying on the version test to decide which bits of metadata were actually debug info when printing the comment annotations. Without the version information the tag numbers were too common & it would print debug info on random metadata that happened to start with an integer that matched a tag number. Instead this change makes the Verify functions more precise (just adding "number of operands" checks - not type checking those operands yet) & relies on that to decide which metadata is debug info metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176838 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ebugInfo.cpp
|
6643868498043d373384e0befaff3b5a8a8574f7 |
12-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Add asserts to DIBuilder & fix DINameSpace::Verify to allow unnamed namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176837 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
eda774a6c682bc39610130cf8a183e656230c9ef |
08-Mar-2013 |
David Blaikie <dblaikie@gmail.com> |
Assert to bounds check MDNode::getOperand. The getOperandPtr utility already bounds checks, but allows one-off-the-end. This assert should catch the cases that could previously have been dereferencing these one-off-the-end pointer. Happily, no cases of this came up with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176721 91177308-0d34-0410-b5e6-96231b3b80d8
etadata.cpp
|
4e4cc7dae8d2b2f8a07c38f4d61e0b94b13d008b |
07-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace temporary vectors with arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176651 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
55d8f6d49023de5182efbb29d0b3bd0035909d62 |
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
ArrayRef has a OneElt constructor. Beautify the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176604 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
82e905aae4fe815fc57f50663467cb03e4c9e9e1 |
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
Switch from std::vector to ArrayRef. Speedup FoldBitCast by 5x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176602 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
985dac65791b9f6f631bdd51c18fe66592a67469 |
06-Mar-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. The "invariant.load" metadata indicates the memory unit being accessed is immutable. A load annotated with this metadata can be moved across any store. As I am not sure if it is legal to move such loads across barrier/fence, this change dose not allow such transformation. rdar://11311484 Thank Arnold for code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176562 91177308-0d34-0410-b5e6-96231b3b80d8
LVMContext.cpp
|
5adb136be579e8fff3734461580cb34d1d2983b8 |
06-Mar-2013 |
Stephen Hines <srhines@google.com> |
Merge commit 'b3201c5cf1e183d840f7c99ff779d57f1549d8e5' into merge_20130226 Conflicts: include/llvm/Support/ELF.h lib/Support/DeltaAlgorithm.cpp Change-Id: I24a4fbce62eb39d924efee3c687b55e1e17b30cd
|
328d1b65002e68ae65ffef05eed19122cbf721f5 |
02-Mar-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Modify {Call,Invoke}Inst::addAttribute to take an AttrKind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176397 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
c2171eb3ffb0aaa845de15437cadf2a298f1ea61 |
01-Mar-2013 |
Jean-Luc Duprat <jduprat@apple.com> |
Removed extraneous #include "LLVMContextImpl.h" from lib/IR/Module.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176382 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
|
4c8e74f0b75cb10820c45c86399fbd02e4a8832a |
01-Mar-2013 |
Michael Ilseman <milseman@apple.com> |
Cache the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. This reduces the time actually spent doing string to ID conversion and shows a 10% improvement in compile time for a particularly bad case that involves ARM Neon intrinsics (these have many overloads). Patch by Jean-Luc Duprat! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176365 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
LVMContextImpl.h
odule.cpp
alue.cpp
|
40c81fe501ac99ff3f3ec004ce9e5a526d07e441 |
28-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't add the 'Value' string if there isn't one. This was causing the folding set to fail to fold attributes, because it was being calculated in one spot without an empty values string but here with an empty values string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176301 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
|
1abc00b6d18b1a81548e52783fbccd1c59ebf968 |
28-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't add an attribute that already exists and don't remove an attribute that doesn't exist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176289 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
8df7c39976890d94198d835e032848a374fec158 |
27-Feb-2013 |
Meador Inge <meadori@codesourcery.com> |
IR: Don't constant fold GEP bitcasts between different address spaces PR15262 reported a bug where the following instruction: i8 getelementptr inbounds i8* bitcast ([4 x i8] addrspace(12)* @buf to i8*), i32 2 was getting folded into: addrspace(12)* getelementptr inbounds ([4 x i8] addrspace(12)* @buf, i32 0, i32 2) This caused instcombine to crash because the original instruction and the folded instruction have different types. The issue was fixed by disallowing bitcasts between different address spaces to be folded away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176156 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
8eec41fc778e99d42172a7f6de76faa43a6d8847 |
26-Feb-2013 |
Kostya Serebryany <kcc@google.com> |
Unify clang/llvm attributes for asan/tsan/msan (LLVM part) These are two related changes (one in llvm, one in clang). LLVM: - rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode) - rename thread_safety => sanitize_thread - rename no_uninitialized_checks -> sanitize_memory CLANG: - add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis)) - add __attribute__((no_sanitize_thread)) - add __attribute__((no_sanitize_memory)) for S in address thread memory If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not set llvm attribute sanitize_S git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176075 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
ce522ee0a27062390f13e7ccb53fcff4fc36c473 |
26-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176072 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
6172f0298391e00cb669cc246e70ae2531f2cdec |
25-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
DIBuilder: support structs with vtable pointers in the same way as classes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176004 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
e4b67906d3cc5ea365359f9b034189aaa51ca1e9 |
23-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Add a field to the compile unit of where we plan on splitting out the debug info for -gsplit-dwarf so we can encode that location in the skeleton cu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175933 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
1683b304e0487700c2f4447e7c72c62fb9f3a24c |
23-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Add a TODO and explain when we can get rid of the isMain field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175932 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
351b7a10e2560a835759748c58da09e53207b39d |
22-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use references to attribute groups on the call/invoke instructions. Listing all of the attributes for the callee of a call/invoke instruction is way too much and makes the IR unreadable. Use references to attributes instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175877 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
bd2acfab4a4692ce39541f380997945e9bbb14ae |
22-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove warning about default covering no cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175846 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
d18e0b94bfaad5b8a24fcb45b55d7e031cc94202 |
22-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a bitmask for NoBuiltin. This should *not* be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175843 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
143d46476cdcf5b88b9ee18ebd799e5820a2db0e |
22-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Implement the NoBuiltin attribute. The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should not treat the callee function as a built-in function. I.e., it shouldn't try to replace that function with different code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175835 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
fece442c697eb29f14b4718bdafa3a97d545b476 |
21-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't assert on empty attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175785 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
|
b7a1dda9c91b3d1821f4235c35a0d62c62d18848 |
21-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add and remove the attribute from the correct slot. The slot that we're adding/removing the attribute from may not be the same as the attribute coming in. Make sure that they match up before we try to add/remove them. PR15313 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175684 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
|
7ab6c76ad1cbf36284ca5b6bd5ee33c625fe3e60 |
20-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Modify the LLVM assembly output so that it uses references to represent function attributes. This makes the LLVM assembly look better. E.g.: define void @foo() #0 { ret void } attributes #0 = { nounwind noinline ssp } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175605 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
2bb471f2fa3709f5861f20016ff9d24f0098abe4 |
20-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the function attributes from an inline asm call. These don't have declarations that set the attribute groups, so we must do it on our own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175577 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
03544ec2a43fab162d25cf44627d1d08430bcccd |
19-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects. rdar://13227456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175553 91177308-0d34-0410-b5e6-96231b3b80d8
nstruction.cpp
|
a175396816a9b28835acfe2cd07250881f1fee6c |
19-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Fix a bug that was found by the clang static analyzer. The var "AT" is null so we cant deref it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175550 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
3f213e7b3a6829a154d4e8ceb7d8689b389bd5dc |
18-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Futureproof AttrBuild if we ever have more than 64 attr enum values. Currently we're at 34. Bitset should compile into virtually the same code as uint64_t here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175437 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
d4f92fd0d1f22af553db08416b476241e4372d9a |
18-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
DIBuilder: Correct the null/0 type of trailing fields in struct debug info. Paired with an Clang commit so this may cause temporary build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175426 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
139f7e50688ce120b275ae368f563d03d9c18184 |
18-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
DIBuilder: Add function and method definitions to the list of all subprograms Previously we seemed to be assuming that all functions were definitions and all methods were declarations. This may be consistent with how Clang uses DIBuilder but doesn't have to be true of all clients (such as DragonEgg). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175423 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
d67c5cab3b770b0709dcb05256aef51b35f3f113 |
18-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Narrow the return types of a few DIBuilder utility functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175421 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
906727dcfeb359acec4caca3ba8c756c4308ff6b |
17-Feb-2013 |
Duncan Sands <baldrick@free.fr> |
Add multithreading functions and shutdown to the C API. Patch by Moritz Maxeiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175398 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
7c1461252b7ee8b3b5a556993cb7b96d793223b6 |
16-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
GCC doesn't like ++ on enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175373 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
c835b8c30127d15599de2d614434d39a6cc3ae17 |
16-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Turn the enum attributes DenseSet in AttrBuilder into a set of bits. Avoids malloc and is a lot denser. We lose iteration over target independent attributes, but that's a strange interface anyways and didn't have any users outside of AttrBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175370 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
94328f4ff3d450104f15c9dae437cea80417233d |
15-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Simplify the 'operator<' for the attribute object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175252 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
a7e4409bb238ec3c5169c25afbb0308ae76d1111 |
15-Feb-2013 |
Anna Zaks <ganna@apple.com> |
Revert "Simplify the attributes '<' comparison function." This reverts commit 82c101153fe7b35bce48781fab038e1b8f31a7bd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175250 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
0ec707a4e586f41f8a2cf91557fbbbe142377dd0 |
15-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Simplify the attributes '<' comparison function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175235 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
aefd14be3951d5b84cda5561655fe63549819d25 |
14-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
s/bool/LLVMBool/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175204 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
31cfc707058ad3f470924cdb3c460c8f50ee76c3 |
14-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add two new functions to the C API: LLVMCreateMemoryBufferWithMemoryRange - exposes MemoryBuffer::getMemBuffer LLVMCreateMemoryBufferWithMemoryRangeCopy - exposes MemoryBuffer::getMemBufferCopy Patch by Moritz Maxeiner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175199 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
f107e6ca9bbfc82c980c3e8e5c6bf04261b49c90 |
13-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use array_pod_sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175048 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
0e9d5d059c4aa959e9ef4dff011dbd38d45a1016 |
13-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add some accessor and query methods for retrieving Attribute objects and such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175046 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
87d0b9ed1462705dd9bf1cb7f67d0bf03af776c8 |
12-Feb-2013 |
Guy Benyei <guy.benyei@intel.com> |
Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175006 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
nlineAsm.cpp
LVMContext.cpp
|
74fe825ca597f56985ab4387baca35948647ec4b |
12-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Support string attributes in the AttrBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174948 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
2ce067a9fb5b2d046c92519428cafa71fae81ed4 |
12-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
DIBuilder: make the return type of createBasicType more specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174924 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
b29ce26ea60f7516c853318ffbfc107fde9ad897 |
11-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add support for printing out the attribute groups. This emits the attribute groups that are used by the functions. (It currently doesn't print out return type or parameter attributes within attribute groups.) Note: The functions still retrieve their attributes from the "old" bitcode format (using the deprecated 'Raw()' method). This means that string attributes within an attribute group will not show up during a disassembly. This will be addressed in a future commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174867 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
|
ab39afa9d9b99c61842c8e3d0eb706bd16efdcf3 |
11-Feb-2013 |
Kostya Serebryany <kcc@google.com> |
[tsan/msan] adding thread_safety and uninitialized_checks attributes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174864 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
f64c889cc94417322b0ff8ad1c61939183bf3c38 |
11-Feb-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert "Rename LLVMContext diagnostic handler types and functions." This reverts my commit 171047. Now that I've removed my misguided attempt to support backend warnings, these diagnostics are only about inline assembly. It would take quite a bit more work to generalize them properly, so I'm just reverting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174860 91177308-0d34-0410-b5e6-96231b3b80d8
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
|
f12b379448a9f2131feba15c01714e44bedda120 |
11-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix unnecessary removal of const through cast machinery I have some uncommitted changes to the cast code that catch this sort of thing at compile-time but I still need to do some other cleanup before I can enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174853 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
2153691a8ba35cb2bcf9237557b6cae7e9d8e68d |
11-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
The 'Raw' method cannot handle 'string' attributes. Don't even try. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174848 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
09ed9101c8c7e93c1d814e75ff906bf904778dbb |
10-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Handle string attributes in the AttrBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174834 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
87de71cb9f12d874e88d4f314ab245985c1b36bc |
10-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add 'empty' query methods to the builder and use them in the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174832 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
85b3fbecdfe934ac7519a8831c4bd262cba99d12 |
10-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add accessor for the LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174824 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
68b2faf6be3a08064687a67a19efee0a713435de |
09-Feb-2013 |
Sergei Larin <slarin@codeaurora.org> |
Enable *BasicBlockPass::createPrinterPass() Enables raw_ostream I/O for BasicBlockPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174776 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
ass.cpp
rintModulePass.cpp
|
d3da6d5dda00761d383a1c339f54da470643c663 |
08-Feb-2013 |
Dan Gohman <dan433584@gmail.com> |
Minor cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174756 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
58446916b71c4ff79962081ea7c4df078c388b0e |
08-Feb-2013 |
Bob Wilson <bob.wilson@apple.com> |
Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" This reverts r171041. This was a nice idea that didn't work out well. Clang warnings need to be associated with warning groups so that they can be selectively disabled, promoted to errors, etc. This simplistic patch didn't allow for that. Enhancing it to provide some way for the backend to specify a front-end warning type seems like overkill for the few uses of this, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174748 91177308-0d34-0410-b5e6-96231b3b80d8
LVMContext.cpp
|
97fe3d95110db54908527e547187b3007185e46c |
06-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove extra blank line between closing curly brace and 'else' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174492 91177308-0d34-0410-b5e6-96231b3b80d8
assManager.cpp
|
60309e17a3a86756f7a1bbaca409159733586f2d |
06-Feb-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove unused private field to suppress a build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174491 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
|
c342d9d345acdbd95577c7c6e9ce7d3a1bdb57bf |
06-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a 'StringRef' version of hasAttribute. Fix the 'operator==' and 'hasAttributes' queries to take into account target-dependent attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174481 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
85df6b43403d3ebf5d80023a85699c6fb254941a |
06-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add methods to merge an AttrBuilder into another builder. This is useful when parsing an object that references multiple attribute groups. N.B. If both builders have alignments specified, then they should match! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174480 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
64754f499058b5dc748ea6d06a084af0ed539ec4 |
06-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the target-dependent (string) attributes from the AttrBuilder to the AttributeSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174467 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
8c74ecfbddabe89e150abff4fdff0a27108874b9 |
05-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Convert to storing the attribute's internals as enums, integers, and strings. The stuff we're handing are all enums (Attribute::AttrKind), integers and strings. Don't convert them to Constants, which is an unnecessary step here. The rest of the changes are mostly mechanical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174456 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
ea59f896a672c2e1ef9f02277bce60257aa60989 |
05-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add target-dependent versions of addAttribute/removeAttribute to AttrBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174356 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
a2de37c897556fbd1f94a3ed84ad27accd8f8deb |
05-Feb-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added LLVM Asm/Bitcode Reader/Writer support for new IR keyword externally_initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174340 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
|
f9271ea159b97e2febedcf095c3c4122cb24d077 |
05-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Initial cleanups of the param-attribute code in the bitcode reader/writer. Rename the PARAMATTR_CODE_ENTRY to PARAMATTR_CODE_ENTRY_OLD. It will be replaced by another encoding. Keep around the current LLVM attribute encoder/decoder code, but move it to the bitcode directories so that no one's tempted to use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174335 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
f839eed5ea2bfd395256d60e15d1e31dbad6ca8b |
04-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
[DebugInfo] remove more node indirection (this time from the subprogram's variable lists) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174305 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
a9b1317443990533f56a8420c0fbfb8868dad566 |
04-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
PR15149: crash when printing debug info metadata containing an invalid language spec git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174304 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
af2f494c2d87a77c46efb85856f235ddd7f3c6ab |
03-Feb-2013 |
Michael Gottesman <mgottesman@apple.com> |
Added instance variable/initializers/getter/setters for new keyword externally initialized to GlobalVariable. No *TRUE* functionality change. I am going to add in the actual test cases with the actual functionality changes in a later patch because I want to include some test cases. To be clear when I say no *TRUE* functionality change I mean that this patch (like it says in the title) only contains getters/setters and sets up a default initial value of the instance variable to false so that this patch does not affect any other uses of Global Variable.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174295 91177308-0d34-0410-b5e6-96231b3b80d8
lobals.cpp
|
a8eefc7cc7c6e8be06d570fff76dc42b43a23392 |
02-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove the (apparently) unnecessary debug info metadata indirection. The main lists of debug info metadata attached to the compile_unit had an extra layer of metadata nodes they went through for no apparent reason. This patch removes that (& still passes just as much of the GDB 7.5 test suite). If anyone can show evidence as to why these extra metadata nodes are there I'm open to reverting this patch & documenting why they're there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174266 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
fca0ed28c81a505b0b71605e8b59e4bb6daeda0e |
02-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove AttrBuilder::Raw(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174251 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
bdcbccc710a0528b4abce947782fd502bafb848d |
02-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet's iterators. Use the AttributeSet's iterators in AttrBuilder::hasAttributes() when determining of the intersection of the AttrBuilder and AttributeSet is non-null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174250 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
5a4041e7282ca1dba93fe1a97c8260c0ef621f5d |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Change the AttributeImpl to hold a single Constant* for the values. This Constant could be an aggregate to represent multiple values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174228 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
7beee2876795098d2e2f31ecc2ca29fa7640a8eb |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove some dead code, improve some asserts, and other assorted changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174132 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
f715dbd263149efeb9c684dfdb0637cf84f94399 |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove one of the odious 'Raw' methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174130 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
30d2c76800bc821aff6e224e0bd11d88a793303e |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use iterators instead of relying upon a bitmask of attributes to remove attributes from an AttrBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174123 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
16c4b3cf2943ae2327752cf3de39769d14cfcece |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Add iterators to the AttributeSet class so that we can access the Attributes in a nice way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174120 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
39da078977ae98b6bf1c3c76a472ed24f5f2a2d2 |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
s/AttrBuilder::addAttributes/AttrBuilder::addAttribute/g because that's more descriptive of what it actually is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174116 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
169d5270751597aed4095ead00401a3374906147 |
01-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the AttrBuilder form of the Attribute::get creators. The AttrBuilder is for building a collection of attributes. The Attribute object holds only one attribute. So it's not really useful for the Attribute object to have a creator which takes an AttrBuilder. This has two fallouts: 1. The AttrBuilder no longer holds its internal attributes in a bit-mask form. 2. The attributes are now ordered alphabetically (hence why the tests have changed). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174110 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
14292a6be51ab57ff425ff263d4134fe46d082c4 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add support for emitting a string attribute. Attributes that are strings are typically target-dependent attributes. They are of this form in the IR: "attr" "attr" = "val" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174090 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
82aea644c6d2a21464958fe2e3a1cd0f6bfc82db |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the Attribute::hasAttributes() function. That function doesn't make sense anymore because there's only one attribute per Attribute object now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174044 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
eddab1550ee10cce3bb26a26e88529cb19451aa3 |
31-Jan-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r174026, "Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private." It broke many hosts to crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174035 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
85238aae1a4b6ac67e16560a9855944191f3db5b |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private. The Attribute::hasAttributes() is kind of meaningless since an Attribute can have only one attribute. And we would rather people use the 'operator==' instead of Attribute::hasAttribute(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174026 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
8ed701da9aa388c078cc6aecac2fe355974c90d2 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Make the AttrBuilder creation method of Attribute private so that people won't use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174023 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
b96129dd4856a5473c52daceaabdfd2262bd96f2 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert for now: --- Reverse-merging r174010 into '.': U include/llvm/IR/Attributes.h U lib/IR/Verifier.cpp U lib/IR/Attributes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174012 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
c6077eff8b9963b59de21e5d1dfae7a6ea75da36 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the AttrBuilder version of the Attribute::get function. The AttrBuilder is there to build up multiple attributes. The Attribute class represents only one attribute at a time. So remove this unnecessary builder creator method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174010 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
73dee180c836270644dfa7d90f9c5ba877567999 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Make sure that the Attribute object represents one attribute only. Several places were still treating the Attribute object as respresenting multiple attributes. Those places now use the AttributeSet to represent multiple attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174003 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
d363ae52995059906d99f7588f47bf891e7db485 |
31-Jan-2013 |
Dan Gohman <dan433584@gmail.com> |
Fix ConstantFold's folding of icmp instructions to recognize that, for example, a one-past-the-end pointer from one global variable may be equal to the base pointer of another global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173995 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
|
ac72eb264c3a8a15cda81aaead6adc8419058666 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove addRetAttributes and addFnAttributes, which aren't useful abstractions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173992 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
e74365462a39529ae48ef4d34ec76b4543b8ea29 |
31-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Convert typeIncompatible to return an AttributeSet. There are still places which treat the Attribute object as a collection of attributes. I'm systematically removing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173990 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
383da6ba555a3c2be360d9bdc75a74f315f2354e |
30-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove redundant code. It was creating a new AttrBuilder when we could just fill in the AttrBuilder we're building. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173975 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
f578c89dc6ca3e79667c2aa9d0ac4fe409da7773 |
30-Jan-2013 |
Eli Bendersky <eliben@google.com> |
Clean up whitespace and indentation a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173960 91177308-0d34-0410-b5e6-96231b3b80d8
ataLayout.cpp
|
254aed5e22a36effb1e1b9e8d03f8cd5e9bb7586 |
30-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Attempt to fix dragonegg. Use the number of slots to determine if the AttributeSet has attributes or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173902 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
6dc3781d44e56f0addf28b06232a50f3f9e6b1af |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a couple of accessor methods to get the kind and values of an attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173828 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
9f175f88190fae22df9c6e68af618d0493477ff9 |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
s/Data/Kind/g. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173827 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
3ba51cefb75364a17e3a23c54c216035c33e67a6 |
29-Jan-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
AttributeSet::get(): Fix a valgrind error. It doesn't affect actual behavior, though. Don't touch I->first on the end iterator, I == E! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173804 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
606c8e36dfdd28fc589356addd3e2cbb89a32e4d |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Convert getAttributes() to return an AttributeSetNode. The AttributeSetNode contains all of the attributes. This removes one (hopefully last) use of the Attribute class as a container of multiple attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173761 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
8232ece5c1e57efe54342fb35610497d50bf894f |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use an AttrBuilder to generate the correct AttributeSet. We no longer accept an encoded integer as representing all of the attributes. Convert this via the AttrBuilder class into an AttributeSet with the correct representation (an AttributeSetImpl that holds a list of Attribute objects). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173750 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
8fbc0c296ef067150f3228e389ae04cf7b3b1992 |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Convert the AttrBuilder into a list of Attributes instead of one Attribute object that holds all of its attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173742 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
817abdd8b055059e5930a15704b9f52da4236456 |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
S'more small non-functional changes in comments and #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173738 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
c22f4aa886443507f8406d30d118fdeeac6a8c6c |
29-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Reorder some functions and add comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173733 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
6bdbf061c353295669b6bfc271b948158602d1bc |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Try to appease some broken compilers by using 'unsigned' instead of 'uint64_t'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173725 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
87e10dfefa94f77937c37b0eb51095540d675cbc |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the AttributeWithIndex class. The AttributeWithIndex class exposed the interior structure of the AttributeSet class. That was gross. Remove it and all of the code that relied upon it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173722 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
19d815c04fde6b7b53c2b542813157edfa213842 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Mid-air collision. reapply r173656. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173661 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
98b92f3bf5770e02498549e24b3db75d5862c173 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Rewrite the removeAttr() method. This now uses the AttributeSet object instead of the Attribute / AttributeWithIndex objects. It's fairly simple now. It goes through all of the subsets before the one we're modifying, adds them to the new set. It then adds the modified subset (with the requested attributes removed). And then adds the rest of the subsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173660 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
49f6060f16aec4024d644a6ec4ddd3de9b3e8821 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Rewrite the addAttr() method. This now uses the AttributeSet object instead of the Attribute / AttributeWithIndex objects. It's fairly simple now. It goes through all of the subsets before the one we're modifying, adds them to the new set. It then adds the modified subset. And then adds the rest of the subsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173659 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
53ff78b2019e96e142986d19dd99f8dd563dc494 |
28-Jan-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r173646, "Use proper type for the index." Unfortunately, msvc miscompiles it. Investigating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173656 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
a9b9f0ad802ef6973534a9a247716e4a8e079635 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use proper type for the index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173646 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
e2501f56a620be88665d04dc481f40ef3275eea0 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173644 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
70cdaaae925862b9d52d41729e93cf6417c3370b |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove another use of AttributeWithIndex, using the AttributeSetImpl accessors instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173642 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
73bc452bcd63620daefb0a3bc613746af7418076 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove a use of AttributeWithIndex. We want to remove AttributeWithIndex because it provides a non-encapsulated view of the AttributeSetImpl object. Instead, use accessor methods and iterators. Eventually, this code can be simplified because the Attribute object will hold only one attribute instead of multiple attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173641 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
49716e5d84142d7bd3eeff7304f9bc708bff99d0 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Improve the debug output a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173640 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
3e3e789aede6ec38d39c95d88ad4e8634d5a259b |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use proper return type for attribute index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173639 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
5f33912f91ec2673545a5e000cc7bf7a0ecccdbd |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use proper return type for attribute index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173638 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
|
d05204aea4977eaec25e96bc7605a7bb9d806fc0 |
28-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Push the calculation of the 'Raw' attribute mask down into the implementation. It in turn uses the correct list for calculating the 'Raw' value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173637 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
c08a5ef6581f2c7550e92d31f63cd65ec29c39e0 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add special 'get' methods to create an Attribute with an alignment. Also do some random cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173635 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
1cc0d5a4311c2d4bc01051561549390307b789a1 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Privitize some the copy c'tor and assignment operator of uniquified objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173632 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
|
893eac1648151ca42e3d0f9e9da092d817c9f8ba |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add some helpful comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173631 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
|
ec2589863b32da169240c4fa120ef1e3798615d4 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
s/AttrList/pImpl/g in AttributeSet. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173628 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
a5372d270864316fb0752dd366f03fc1b45c6143 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Start using more of the AttrNode in the AttributeSetImpl class. Also add some asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173627 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
6a325cc46db9cb0c631ac832474e5df039d04b19 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
In the AttributeSetImpl c'tor, fill in the AttrNodes data structure with the attributes being passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173618 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
16f95669ec814d98ce28ad514df603c01d662ee8 |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Fix miscompile. Add back the use of the ArrayRef version of the ::get method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173613 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
09dda440ba6622b64713ef5f7d9531411e3589ea |
27-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove dead methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173611 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
32a57958226e369f964a034da2ce7083a1a34297 |
26-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Convert BuildLibCalls.cpp to using the AttributeSet methods instead of AttributeWithIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173536 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
483bbd36b8b3f87073feea2e1096f188d0e735b8 |
26-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173524 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
8e47daf2858e980210f3e1f007036b24da342c29 |
26-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove some introspection functions. The 'getSlot' function and its ilk allow introspection into the AttributeSet class. However, that class should be opaque. Allow access through accessor methods instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173522 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
erifier.cpp
|
85875647d6f85cbcbe506809640b9857eaaa26a4 |
25-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the new 'getSlotIndex' method to retrieve the attribute's slot index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173499 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
e1f95db4803a48a30fc2a1d5868281a87a36fb85 |
25-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add an accessor method to get the slot's index. This will limit the use of AttributeWithIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173495 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
erifier.cpp
|
f86c9321fc8088a021598df0265c5fd00ab4170d |
25-Jan-2013 |
Reid Kleckner <reid@kleckner.net> |
Fix MSVC 2012 warning about a 32-bit shift that should be 64-bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173454 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
a3bb665c6505ff78c29a37ca95dad1d297928791 |
25-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet query instead of the Attribute query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173434 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
bb08593980b16fbd9758da6ca4fa9c7964f2f926 |
24-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a profile for uniquifying the AttributeSet with the AttributeSetNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173313 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
8b1f2f3b7007e1e086c0e20ad4fdea72222c4baf |
24-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Cleanup the AttributeSetNodes that we create. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173311 91177308-0d34-0410-b5e6-96231b3b80d8
LVMContextImpl.cpp
|
3467e30edf63b6d8a8d446186674ba9e4b7885a9 |
24-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Create a new class: AttributeSetNode. This is a helper class for the AttributeSetImpl class. It holds a set of attributes that apply to a single element: function, return type, or parameter. These are uniqued. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173310 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
LVMContextImpl.h
|
a8ab5fc772e1eaaa1066d1c9c4135ac875d79365 |
24-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Push down the conversion of the alignment from the bit mask to a real number into the attribute implementation class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173304 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
2915a691b9eecde508948d4300428860d1655175 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove dead methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173302 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
114baee1fa017daefad2339c77b45b9ca3d79a41 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the IR attribute 'sspstrong'. SSPStrong applies a heuristic to insert stack protectors in these situations: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) This patch implements the SSPString attribute to be equivalent to SSPRequired. This will change in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173230 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
28d65722d6f283b327b5815914382077fe9c0ab4 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the last of uses that use the Attribute object as a collection of attributes. Collections of attributes are handled via the AttributeSet class now. This finally frees us up to make significant changes to how attributes are structured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173228 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
ore.cpp
unction.cpp
|
8246df61f6de716acf1f8c64fac3c19970a2c174 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet when removing multiple attributes. Use Attribute::AttrKind when removing one attribute. This further encapsulates the use of the attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173214 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
ore.cpp
unction.cpp
nstructions.cpp
|
70d2ca0725b05a2d372e4dc3336e8ea350093e98 |
23-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind when adding a single attribute to the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173210 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
|
defaca00b8087d452df2b783250a48a32658a910 |
22-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
More encapsulation work. Use the AttributeSet when we're talking about more than one attribute. Add a function that adds a single attribute. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173196 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
ore.cpp
unction.cpp
nstructions.cpp
|
0a29cb045444c13160e90fe7942a9d7c720185ed |
22-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Make APFloat constructor require explicit semantics. Previously we tried to infer it from the bit width size, with an added IsIEEE argument for the PPC/IEEE 128-bit case, which had a default value. This default value allowed bugs to creep in, where it was inappropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
onstantFold.cpp
onstants.cpp
|
e4e85f17564c28cd571dda30146c3f310521acf0 |
22-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a new method that adds the AttributeSet at the given index. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173109 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
da6d5623aefeb3c77a610954c77605107e1532b8 |
22-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the attributes that are passed in instead of the ones we're merging into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173108 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
bed8059b320e273cd187b12cffb62fa147f010fe |
22-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use AttributeSet instead of Attribute to verify things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173101 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
3fc4b96b503fa202411317684a2ba02e41e43072 |
21-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Have AttributeSet::getRetAttributes() return an AttributeSet instead of Attribute. This further restricts the use of the Attribute class to the Attribute family of classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173098 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
c5f1bc88a2eb7ad9ff924ca90cf88494e5f947b9 |
21-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Make AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute. This is more code to isolate the use of the Attribute class to that of just holding one attribute instead of a collection of attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173094 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
3aef70314b053a1df4f85ca4a6f3890d06ebbdd6 |
09-Jan-2013 |
Stephen Hines <srhines@google.com> |
Update LLVM for merge to r171905. Android.mk lib/Analysis/Android.mk lib/CodeGen/Android.mk lib/CodeGen/MachineScheduler.cpp - specify std::pop_heap() lib/IR/Android.mk - new from lib/VMCore lib/MC/Android.mk lib/MC/MCAssembler.cpp - put back pointer param (from reference). lib/Support/DeltaAlgorithm.cpp - iterator -> const_iterator ! lib/TableGen/Android.mk lib/Target/ARM/ARMJITInfo.cpp - Removed unused legacy JIT changes lib/Target/ARM/Android.mk lib/Target/ARM/AsmParser/Android.mk lib/Target/ARM/Disassembler/Android.mk lib/Target/ARM/MCTargetDesc/Android.mk lib/Target/Android.mk lib/Target/Mips/Android.mk lib/Target/Mips/Disassembler/Android.mk lib/Target/Mips/MCTargetDesc/Android.mk lib/Target/X86/Android.mk lib/Target/X86/AsmParser/Android.mk lib/Target/X86/Disassembler/Android.mk lib/Transforms/IPO/Android.mk lib/Transforms/Instrumentation/Android.mk lib/Transforms/Scalar/Android.mk lib/Transforms/Utils/Android.mk lib/Transforms/Vectorize/Android.mk lib/VMCore/Android.mk - moved to lib/IR llvm-gen-intrinsics.mk - new Intrinsics.td location utils/TableGen/Android.mk Change-Id: Ifebdb1716c372fd917a844c44be9d10df66434b0
ndroid.mk
|
fe07db323b2b403236375af0a54b0ed2294cd0e6 |
20-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix a latent bug exposed by recent static member debug info changes. We weren't encoding boolean constants correctly due to modeling boolean as a signed type & then sign extending an i1 up to a byte & getting 255. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172926 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
aec710675febb13d3cf4a7141d2658a3b1797cfd |
18-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
If the attributes don't exist, just bail for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172854 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
1b0c54f1c5dd61e56cb7cbc435fcb3319cff628f |
18-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Use AttributeSet accessor methods instead of Attribute accessor methods. Further encapsulation of the Attribute object. Don't allow direct access to the Attribute object as an aggregate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172853 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributes.cpp
|
956f13440a4aa0297606a4412f4aa091d931592a |
18-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Push some more methods down to hide the use of the Attribute class. Because the Attribute class is going to stop representing a collection of attributes, limit the use of it as an aggregate in favor of using AttributeSet. This replaces some of the uses for querying the function attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172844 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
erifier.cpp
|
5db391c67d0922f4ab2ba57c07def19759c801a4 |
16-Jan-2013 |
Daniel Dunbar <daniel@zuster.org> |
[IR] Add 'Append' and 'AppendUnique' module flag behaviors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172659 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
655578f8b5275e7c59b87d4709b0d56b2621caac |
16-Jan-2013 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Allow vectors in CreatePointerCast of constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172615 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
6b6061f01171bd3d4e32022efa45428d4f9941ee |
16-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Define metadata interfaces for describing a static data member of a class. Emit static data member declarations and definitions through correctly. Part of PR14471. Patch by Paul Robinson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172590 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
12bfff440700c58bc67e9f9d8f99121632022cf1 |
15-Jan-2013 |
Daniel Dunbar <daniel@zuster.org> |
[IR] Add verification for module flags with the "require" behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172549 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
344d3fb9614a103f84520fd88870121abe94c080 |
15-Jan-2013 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Allow vectors in CreatePointerCast. Both underlying IR operations support vectors of pointers already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172538 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
8dd938ed179267b2a3a5206c78e89530967f45a5 |
15-Jan-2013 |
Daniel Dunbar <daniel@zuster.org> |
[IR] Add verifier support for llvm.module.flags. - Also, update the LangRef documentation on module flags to match the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172498 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
914d4a76fe0dd7aafb9f06f5af2dcf09c0b87ee7 |
14-Jan-2013 |
David Greene <greened@obbligato.org> |
Fix Casting Stop a gcc warning about casting away const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172465 91177308-0d34-0410-b5e6-96231b3b80d8
se.cpp
|
4d0b4a45dc724666d5de4f2f7c2d295487e4ca3e |
11-Jan-2013 |
Michael Ilseman <milseman@apple.com> |
Support for half intrinsics. Pushes MMX into slower encoding path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172159 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
erifier.cpp
|
582e4f278b95d50a45c6f56e33da5e78c19afc17 |
11-Jan-2013 |
Evan Cheng <evan.cheng@apple.com> |
CastInst::castIsValid should return true if the dest type is the same as Value's current type. The casting is trivial even for aggregate type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172143 91177308-0d34-0410-b5e6-96231b3b80d8
nstructions.cpp
|
1db9b6957c2565a2322206bd5907530895f1c7ac |
10-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert s/Raw/getBitMask/g name change. This is possibly causing LTO test hangings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172020 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
ore.cpp
|
53208a91a0ff20a956357147472d75058c2d5cce |
09-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Alter the hasing computation when inserting into the folding set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171960 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
c3d6de2fe52dbdbf41b1dfebb1430656a16b254b |
09-Jan-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Add comment to the definition of Constant::isZeroValue(). (There already has a concise comment to the declaration.) Thank Eric Christopher for his feedback! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171926 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
|
8456efb38e479e4878a6a782c3026c20b09c1f8e |
09-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Forgot the namespace identifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171924 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
ff887165bc221c0398c0d4404dc0b22de216dedf |
09-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add the integer value of the ConstantInt instead of the Constant* value. This is causing some problems. The root cause is unknown at this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171923 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
935e35d2b9f889566207b76a7026b63a1619742c |
09-Jan-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Consider expression "0.0 - X" as the negation of X if - this expression is explicitly marked no-signed-zero, or - no-signed-zero of this expression can be derived from some context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171922 91177308-0d34-0410-b5e6-96231b3b80d8
onstants.cpp
nstructions.cpp
|
9a1e0e252a7ede548acaac98cf304d4bb135fb97 |
08-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Remove the llvm-local DW_TAG_vector_type tag and add a test to make sure that vector types do work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171833 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
1f55eb4c5766fd6a6fa53c17f7bb9e7d4ea03500 |
08-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171832 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
|
0fecdfb7c44aee85e78e0ba6e9547b702bc64c4a |
08-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
Mark artificial types as such in the annotated debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171826 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
72a81be37452983f9960a376c19682034ef7db35 |
08-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
Remove what appears to be a dead llvm-specific debug tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171821 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
4068e1af9ff68b6b5fdb3233f1304e53f1bf179a |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move TypeFinder.h into the IR tree, it clearly belongs with the IR library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171749 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ypeFinder.cpp
|
a90a99a82b9c5c39fc6dbee9c266dcd7b107fe2f |
07-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Rough out a new c'tor for the AttrBuilder class. This c'tor takes the AttributeSet class as the parameter. It will eventually grab the attributes from the specified index and create a new attribute builder with those attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171712 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
62fdfb5fa7efdfd61339e4abe6fd87e60e939e58 |
07-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14759: Debug info support for C++ member pointers. This works fine with GDB for member variable pointers, but GDB's support for member function pointers seems to be quite unrelated to DW_TAG_ptr_to_member_type. (see GDB bug 14998 for details) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171698 91177308-0d34-0410-b5e6-96231b3b80d8
IBuilder.cpp
ebugInfo.cpp
|
6554666e0034ea1cc5c8095b34d1ffbe0f62f363 |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move the initialization to the Analysis library as well as the pass. This was (somewhat distressingly) only caught be the ocaml bindings tests... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171690 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
|
be04929f7fd76a921540e9901f24563e51dc1219 |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move TargetTransformInfo to live under the Analysis library. This no longer would violate any dependency layering and it is in fact an analysis. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171686 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetTransformInfo.cpp
|
aeef83c6afa1e18d1cf9d359cc678ca0ad556175 |
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch TargetTransformInfo from an immutable analysis pass that requires a TargetMachine to construct (and thus isn't always available), to an analysis group that supports layered implementations much like AliasAnalysis does. This is a pretty massive change, with a few parts that I was unable to easily separate (sorry), so I'll walk through it. The first step of this conversion was to make TargetTransformInfo an analysis group, and to sink the nonce implementations in ScalarTargetTransformInfo and VectorTargetTranformInfo into a NoTargetTransformInfo pass. This allows other passes to add a hard requirement on TTI, and assume they will always get at least on implementation. The TargetTransformInfo analysis group leverages the delegation chaining trick that AliasAnalysis uses, where the base class for the analysis group delegates to the previous analysis *pass*, allowing all but tho NoFoo analysis passes to only implement the parts of the interfaces they support. It also introduces a new trick where each pass in the group retains a pointer to the top-most pass that has been initialized. This allows passes to implement one API in terms of another API and benefit when some other pass above them in the stack has more precise results for the second API. The second step of this conversion is to create a pass that implements the TargetTransformInfo analysis using the target-independent abstractions in the code generator. This replaces the ScalarTargetTransformImpl and VectorTargetTransformImpl classes in lib/Target with a single pass in lib/CodeGen called BasicTargetTransformInfo. This class actually provides most of the TTI functionality, basing it upon the TargetLowering abstraction and other information in the target independent code generator. The third step of the conversion adds support to all TargetMachines to register custom analysis passes. This allows building those passes with access to TargetLowering or other target-specific classes, and it also allows each target to customize the set of analysis passes desired in the pass manager. The baseline LLVMTargetMachine implements this interface to add the BasicTTI pass to the pass manager, and all of the tools that want to support target-aware TTI passes call this routine on whatever target machine they end up with to add the appropriate passes. The fourth step of the conversion created target-specific TTI analysis passes for the X86 and ARM backends. These passes contain the custom logic that was previously in their extensions of the ScalarTargetTransformInfo and VectorTargetTransformInfo interfaces. I separated them into their own file, as now all of the interface bits are private and they just expose a function to create the pass itself. Then I extended these target machines to set up a custom set of analysis passes, first adding BasicTTI as a fallback, and then adding their customized TTI implementations. The fourth step required logic that was shared between the target independent layer and the specific targets to move to a different interface, as they no longer derive from each other. As a consequence, a helper functions were added to TargetLowering representing the common logic needed both in the target implementation and the codegen implementation of the TTI pass. While technically this is the only change that could have been committed separately, it would have been a nightmare to extract. The final step of the conversion was just to delete all the old boilerplate. This got rid of the ScalarTargetTransformInfo and VectorTargetTransformInfo classes, all of the support in all of the targets for producing instances of them, and all of the support in the tools for manually constructing a pass based around them. Now that TTI is a relatively normal analysis group, two things become straightforward. First, we can sink it into lib/Analysis which is a more natural layer for it to live. Second, clients of this interface can depend on it *always* being available which will simplify their code and behavior. These (and other) simplifications will follow in subsequent commits, this one is clearly big enough. Finally, I'm very aware that much of the comments and documentation needs to be updated. As soon as I had this working, and plausibly well commented, I wanted to get it committed and in front of the build bots. I'll be doing a few passes over documentation later if it sticks. Commits to update DragonEgg and Clang will be made presently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171681 91177308-0d34-0410-b5e6-96231b3b80d8
argetTransformInfo.cpp
|
e302b6cb69e96b948101e1ab6c0476187c92ee84 |
05-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
Include access modifiers in subprogram metadata IR comment. Based on code review feedback in r171604 from Chandler Carruth & Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171636 91177308-0d34-0410-b5e6-96231b3b80d8
ebugInfo.cpp
|
f06eb2616516da9d1e7a6599225cd894618ecb10 |
05-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Attribute: Make hashes match when looking up AttributeImpls. This isn't optimal either but fixes a massive compile time regression from the attribute uniquing work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171624 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
7bdf6b00e04c177f22133b5d4be10cb246cb1e76 |
05-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Convert the TargetTransformInfo from an immutable pass with dynamic interfaces which could be extracted from it, and must be provided on construction, to a chained analysis group. The end goal here is that TTI works much like AA -- there is a baseline "no-op" and target independent pass which is in the group, and each target can expose a target-specific pass in the group. These passes will naturally chain allowing each target-specific pass to delegate to the generic pass as needed. In particular, this will allow a much simpler interface for passes that would like to use TTI -- they can have a hard dependency on TTI and it will just be satisfied by the stub implementation when that is all that is available. This patch is a WIP however. In particular, the "stub" pass is actually the one and only pass, and everything there is implemented by delegating to the target-provided interfaces. As a consequence the tools still have to explicitly construct the pass. Switching targets to provide custom passes and sinking the stub behavior into the NoTTI pass is the next step. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171621 91177308-0d34-0410-b5e6-96231b3b80d8
ore.cpp
argetTransformInfo.cpp
|
6f78fbbc630d2b86fb752574f5ad74473f57dfb1 |
05-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the empty and tombstone key enumerators to not have explicit values -- that's not required to fix the bug that was cropping up, and the values selected made the enumeration's underlying type signed and introduced some warnings. This fixes the -Werror build. The underlying issue here was that the DenseMapInfo was casting values completely outside the range of the underlying storage of the enumeration to the enumeration's type. GCC went and "optimized" that into infloops and other misbehavior. By providing designated special values for these keys in the dense map, we ensure they are indeed representable and that they won't be used for anything else. It might be better to reuse None for the empty key and have the tombstone share the value of the sentinel enumerator, but honestly having 2 extra enumerators seemed not to matter and this seems a bit simpler. I'll let Bill shuffle this around (or ask me to shuffle it around) if he prefers it to look a different way. I also made the switch a bit more clear (and produce a better assert) that the enumerators are *never* going to show up and are errors if they do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171614 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
3a4779a9211281a1d0c27c97037342329035a185 |
05-Jan-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
IR/Attributes: Provide EmptyKey and TombstoneKey in part of enum, as workaround for gcc-4.4 take #2. I will investigate, later, what was wrong. I am too tired for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171611 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
1bbd644301ed4d8a7efd4ceb15f71c56fa914f28 |
05-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a method to create an AttributeSet from an AttrBuilder. The Attribute class is eventually going to represent one attribute. So we need this class to create the set of attributes. Add some iterator methods to the builder to access its internal bits in a nice way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171586 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
0319888773b36dd61d7d2283cb9a26cac1e5abe8 |
05-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Get rid of the 'Bits' mask in the attribute builder. The bit mask thing will be a thing of the past. It's not extensible enough. Get rid of its use here. Opt instead for using a vector to hold the attributes. Note: Some of this code will become obsolete once the rewrite is further along. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171553 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
60507d53e7e8e6b0c537675f68204a93c3033de7 |
04-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
General cleanups. * Remove dead methods. * Use the 'operator==' method instead of 'contains', which isn't needed. * Fix some comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171523 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
da704cc1e77d8314a7b116613d8f3a339aedbc19 |
04-Jan-2013 |
Eli Bendersky <eliben@google.com> |
Remove unused #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171507 91177308-0d34-0410-b5e6-96231b3b80d8
erifier.cpp
|
e5ab1bee8c1b4ae58bc108c28194af56379e55ac |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert everything to r171366 to try to fix the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171450 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
22bd64173981bf1251c4b3bfc684207340534ba3 |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Try again to revert the bad patch. The tree was reverted for some unknown reason before the last time. --- Reverse-merging r171442 into '.': U include/llvm/IR/Attributes.h U lib/IR/Attributes.cpp U lib/IR/AttributeImpl.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171448 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
ded28aca6195d2d8d3bcbb9cd6b1c2c34c0d9702 |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Revert patch. Something snuck in there that shouldn't be. --- Reverse-merging r171441 into '.': U include/llvm/IR/Attributes.h U lib/IR/Attributes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171444 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
8351a60d6da4f5cdab80753ad2266085a6fbf62a |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove the 'contains' methods in favor of the 'operator==' method. The 'operator==' method is a bit clearer and much less verbose for somethings that should have only one value. Remove from the AttrBuilder for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171442 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
3ac03815e195a598fce50abdda440c9d2fae815e |
03-Jan-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r171427, "An intermediate step in the Attributes rewrite." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171441 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
47990e974355dd58d1f320f252e1a7ed3a79e034 |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
Make the type signature more strict. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171434 91177308-0d34-0410-b5e6-96231b3b80d8
ttributeImpl.h
ttributes.cpp
|
278bac3fba5ae8ae620c961621493e6e2ad6f953 |
03-Jan-2013 |
Bill Wendling <isanbard@gmail.com> |
An intermediate step in the Attributes rewrite. Modify the AttrBuilder class to store the attributes as a set instead of as a bit mask. The Attribute class will represent only one attribute instead of a collection of attributes. This is the wave of the future! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171427 91177308-0d34-0410-b5e6-96231b3b80d8
ttributes.cpp
|
351ba145a7db32b457f118ecc4d873765ac2a16b |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Actually update the CMake and Makefile builds correctly, and update the code that includes Intrinsics.gen directly. This never showed up in my testing because the old Intrinsics.gen was still kicking around in the make build system and was correct there. =[ Thankfully, some of the bots to clean rebuilds and that caught this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171373 91177308-0d34-0410-b5e6-96231b3b80d8
unction.cpp
akefile
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
onstantFold.cpp
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ominators.cpp
unction.cpp
lobals.cpp
RBuilder.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
ntrinsicInst.cpp
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eakDetector.cpp
eaksContext.h
akefile
etadata.cpp
odule.cpp
assManager.cpp
assRegistry.cpp
rintModulePass.cpp
ymbolTableListTraitsImpl.h
ype.cpp
ypeFinder.cpp
se.cpp
ser.cpp
alue.cpp
alueSymbolTable.cpp
alueTypes.cpp
erifier.cpp
|
c2c50cdcdc19a1bca993c06d13d8cdca87083ce4 |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Rename VMCore directory to IR. Aside from moving the actual files, this patch only updates the build system and the source file comments under lib/... that are relevant. I'll be updating other docs and other files in smaller subsequnet commits. While I've tried to test this, but it is entirely possible that there will still be some build system fallout. Also, note that I've not changed the library name itself: libLLVMCore.a is still the library name. I'd be interested in others' opinions about whether we should rename this as well (I think we should, just not sure what it might break) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171359 91177308-0d34-0410-b5e6-96231b3b80d8
smWriter.cpp
ttributeImpl.h
ttributes.cpp
utoUpgrade.cpp
asicBlock.cpp
MakeLists.txt
onstantFold.cpp
onstantFold.h
onstants.cpp
onstantsContext.h
ore.cpp
IBuilder.cpp
ataLayout.cpp
ebugInfo.cpp
ebugLoc.cpp
ominators.cpp
unction.cpp
COV.cpp
VMaterializer.cpp
lobals.cpp
RBuilder.cpp
nlineAsm.cpp
nstruction.cpp
nstructions.cpp
ntrinsicInst.cpp
LVMBuild.txt
LVMContext.cpp
LVMContextImpl.cpp
LVMContextImpl.h
eakDetector.cpp
eaksContext.h
akefile
etadata.cpp
odule.cpp
ass.cpp
assManager.cpp
assRegistry.cpp
rintModulePass.cpp
ymbolTableListTraitsImpl.h
argetTransformInfo.cpp
ype.cpp
ypeFinder.cpp
se.cpp
ser.cpp
alue.cpp
alueSymbolTable.cpp
alueTypes.cpp
erifier.cpp
|