summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix dead linkEli Bendersky2012-01-071-1/+1
| | | | llvm-svn: 147721
* Use getRegForValue() to materialize the address of ARM globals.Jakob Stoklund Olesen2012-01-073-38/+16
| | | | | | | | | This enables basic local CSE, giving us 20% smaller code for consumer-typeset in -O0 builds. <rdar://problem/10658692> llvm-svn: 147720
* Revert part of r147716. Looks like x87 instructions kill markers are all messedEvan Cheng2012-01-071-9/+11
| | | | | | | | | | up so branch folding pass can't use the scavenger. :-( This doesn't breaks anything currently. It just means targets which do not carefully update kill markers cannot run post-ra scheduler (not new, it has always been the case). We should fix this at some point since it's really hacky. llvm-svn: 147719
* LSR: Don't optimize loops if an outer loop has no preheader.Andrew Trick2012-01-072-4/+49
| | | | | | | | LoopSimplify may not run on some outer loops, e.g. because of indirect branches. SCEVExpander simply cannot handle outer loops with no preheaders. Fixes rdar://10655343 SCEVExpander segfault. llvm-svn: 147718
* Split Finish into Finish and FinishImpl to have a common place to do end ofRafael Espindola2012-01-0716-25/+41
| | | | | | | | file error checking. Use that to error on an unfinished cfi_startproc. The error is not nice, but is already better than a segmentation fault. llvm-svn: 147717
* Added a late machine instruction copy propagation pass. This catchesEvan Cheng2012-01-0713-41/+318
| | | | | | | | | | | | | | | | | | | | | | | | opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 llvm-svn: 147716
* Copy implicit defs (e.g. r0) when changing tBX_RET to tPOP_RET. This bug isEvan Cheng2012-01-071-0/+1
| | | | | | | exposed with an upcoming change will would delete the copy to return register because there is no use! It's amazing anything works. llvm-svn: 147715
* [analyzer] Add basic format string vulnerability checking.Anna Zaks2012-01-074-9/+109
| | | | | | | | | We already have a more conservative check in the compiler (if the format string is not a literal, we warn). Still adding it here for completeness and since this check is stronger - only triggered if the format string is tainted. llvm-svn: 147714
* [arcmt] Disable tests in mingw, no idea why they are failing there.Argyrios Kyrtzidis2012-01-0732-0/+33
| | | | llvm-svn: 147713
* Use movw+movt in ARMFastISel::ARMMaterializeGV.Jakob Stoklund Olesen2012-01-073-43/+78
| | | | | | | | | | | | | This eliminates a lot of constant pool entries for -O0 builds of code with many global variable accesses. This speeds up -O0 codegen of consumer-typeset by 2x because the constant island pass no longer has to look at thousands of constant pool entries. <rdar://problem/10629774> llvm-svn: 147712
* LSR: run DeleteDeadPhis before replaceCongruentPhis.Andrew Trick2012-01-071-19/+15
| | | | llvm-svn: 147711
* Refactor.Devang Patel2012-01-071-38/+45
| | | | | | Store AsmParser info locally. A small step towards emitting match entries for multiple asm variants. llvm-svn: 147710
* Cleanup comments and argument types related to my previous ↵Andrew Trick2012-01-071-4/+5
| | | | | | replaceCongruentPhis checkin. llvm-svn: 147709
* Eliminate an error check that may not work with all asm syntax variants.Devang Patel2012-01-071-1/+2
| | | | llvm-svn: 147708
* Extended replaceCongruentPhis to handle mixed phi types.Andrew Trick2012-01-074-18/+69
| | | | llvm-svn: 147707
* Lambdas: semantic analysis of explicit captures.Eli Friedman2012-01-074-8/+151
| | | | | | This patch (and some of my other commits related to lambdas) is heavily based off of John Freeman's work-in-progress patches. llvm-svn: 147706
* [analyzer] Remove CallEnterNodeBuilder and simplify ↵Ted Kremenek2012-01-076-133/+33
| | | | | | | | ExprEngine::processCallEnter(). This removes analysis of other translation units, but that was an experimental feature anyway that we will revisit later. llvm-svn: 147705
* Make the 'x' constraint work for AVX registers as well.Eric Christopher2012-01-072-4/+22
| | | | | | Fixes rdar://10614894 llvm-svn: 147704
* Missing raw_ostream.h breaks MSVC build.Andrew Trick2012-01-071-0/+1
| | | | llvm-svn: 147703
* Patch from Enrico Granata that moves SBData related functions into the SBDataGreg Clayton2012-01-077-183/+436
| | | | | | | class instead of requiring a live process in order to be able to create useful SBData objects. llvm-svn: 147702
* comment typoAndrew Trick2012-01-071-1/+1
| | | | llvm-svn: 147701
* Expose isNonConstantNegative to users of ScalarEvolution.Andrew Trick2012-01-073-20/+24
| | | | llvm-svn: 147700
* Add field PaddingType to ABIArgInfo which specifies the type of padding thatAkira Hatanaka2012-01-074-16/+74
| | | | | | | | is inserted before the real argument. Padding is needed to ensure the backend reads from or writes to the correct argument slots when the original alignment of a byval structure is unavailable due to flattening. llvm-svn: 147699
* Correctly enqueue successors in ExprEngine::processCallExit().Ted Kremenek2012-01-071-2/+6
| | | | llvm-svn: 147698
* [analyzer] Remove CallExitNodeBuilder, and have ↵Ted Kremenek2012-01-075-41/+20
| | | | | | | | ExprEngine::processCallExit() do the work manually. This is a nice simplification. Along the way, fix Exprengine::processCallExit() to also perform the postStmt callback for checkers for CallExprs. llvm-svn: 147697
* Add comment.Chad Rosier2012-01-061-0/+4
| | | | llvm-svn: 147696
* Add a comment and ensure that anyone else looking at this code doesn't startEric Christopher2012-01-061-6/+5
| | | | | | to bleed from the eyes. llvm-svn: 147695
* Use const vector references instead of a vector copy. Spotted by Devang.Eric Christopher2012-01-061-4/+4
| | | | llvm-svn: 147694
* Use -> instead of (*iter).Eric Christopher2012-01-061-10/+10
| | | | llvm-svn: 147693
* Suppress -Wunused-value within macros from system headers.Matt Beaumont-Gay2012-01-065-14/+48
| | | | | | | Along the way, move a helper function from SemaChecking.cpp to a more accessible home in SourceManager. llvm-svn: 147692
* objc++: more code gen stuff for atomic property api,Fariborz Jahanian2012-01-064-15/+78
| | | | | | | | currently turned off. // rdar://6137845 Also, fixes a test case which should be nonatomic under new API. llvm-svn: 147691
* Enable aligned NEON spilling by default.Jakob Stoklund Olesen2012-01-063-4/+4
| | | | | | Experiments show this to be a small speedup for modern ARM cores. llvm-svn: 147689
* [analyzer] Make the entries in 'Environment' context-sensitive by making ↵Ted Kremenek2012-01-0655-474/+648
| | | | | | | | | | | | | | | | | | entries map from (Stmt*,LocationContext*) pairs to SVals instead of Stmt* to SVals. This is needed to support basic IPA via inlining. Without this, we cannot tell if a Stmt* binding is part of the current analysis scope (StackFrameContext) or part of a parent context. This change introduces an uglification of the use of getSVal(), and thus takes two steps forward and one step back. There are also potential performance implications of enlarging the Environment. Both can be addressed going forward by refactoring the APIs and optimizing the internal representation of Environment. This patch mainly introduces the functionality upon when we want to build upon (and clean up). llvm-svn: 147688
* During name lookup, use redecl_iterator to walk over the redeclarationDouglas Gregor2012-01-062-25/+11
| | | | | | | | | | | | | chain to determine whether any declaration of the given entity is visible, eliminating the redundant (and less efficient) getPreviousDeclaration() implementation. This tweak uncovered an omission in the handling of RedeclarableTemplateDecl, where we weren't making sure to search for additional redeclarations of a template in other module files. Things would be cleaner if RedeclarableTemplateDecl actually used Redeclarable. llvm-svn: 147687
* Put all IVUsers in the processed set. Allow querying IVUsers with ↵Andrew Trick2012-01-062-3/+10
| | | | | | isIVUserOrOperand. llvm-svn: 147686
* Abort AdjustBBOffsetsAfter early when possible.Jakob Stoklund Olesen2012-01-061-2/+10
| | | | llvm-svn: 147685
* lit/lit.TestRunner: Add an extra_substitutions argument for executeShTest --Daniel Dunbar2012-01-061-4/+7
| | | | | | useful for test suites which want to piggyback onto the "shtest" format style. llvm-svn: 147684
* SCEVExpander: hoistStep should check strict dominance.Andrew Trick2012-01-061-1/+1
| | | | llvm-svn: 147683
* Tracing to help investigate issues with SjLj spill code.Andrew Trick2012-01-061-0/+2
| | | | llvm-svn: 147682
* Revert r147664; it's breaking clang regression tests.Eli Friedman2012-01-066-8/+8
| | | | llvm-svn: 147681
* __gxx_personality_v0 update. This is completely untested code. But my ↵Howard Hinnant2012-01-061-8/+283
| | | | | | brain is scrambled and I wanted to get it checked in. Code review from anyone who knows anything at all about personality functions would be much appreciated. What is in here is borrowed heavily from llvm/examples/ExceptionDemo/ExceptionDemo.cpp. There are some calls to abort() that should probably be changed to return an error code instead. There may be encodings under readEncodedPointer that need to be implemented. And my handling of type_info is almost a complete guess. llvm-svn: 147680
* Initializing to false makes better sense. Thanks, David.Chad Rosier2012-01-061-1/+1
| | | | llvm-svn: 147679
* Fix uninitialized variable warning.Chad Rosier2012-01-061-2/+2
| | | | llvm-svn: 147678
* Revert r147655; it's breaking the compiler_rt build on OSX.Eli Friedman2012-01-062-22/+1
| | | | llvm-svn: 147677
* Fix uninitialized variable warning.Chad Rosier2012-01-061-1/+1
| | | | llvm-svn: 147676
* Fix uninitialized variable warning.Chad Rosier2012-01-061-1/+1
| | | | llvm-svn: 147675
* [asan] do not use new/delete for the internal thread structureKostya Serebryany2012-01-065-20/+20
| | | | llvm-svn: 147674
* Fix a leak I noticed while reviewing the accelerator table changes. PassesEric Christopher2012-01-061-0/+5
| | | | | | | | lldb testsuite. rdar://10652330 llvm-svn: 147673
* Thread safety analysis: added support for trylock attribute.DeLesley Hutchins2012-01-062-3/+224
| | | | llvm-svn: 147672
* [asan] move more code into OS-specific filesKostya Serebryany2012-01-064-46/+48
| | | | llvm-svn: 147671
OpenPOWER on IntegriCloud