summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Turn the EdgeBundles class into a stand-alone machine CFG analysis pass.Jakob Stoklund Olesen2011-01-048-88/+147
| | | | | | | | | | The analysis will be needed by both the greedy register allocator and the X86FloatingPoint pass. It only needs to be computed once when the CFG doesn't change. This pass is very fast, usually showing up as 0.0% wall time. llvm-svn: 122832
* Fold -fobjc-nonfragile-abi2 into -fobjc-nonfragile-abi.Fariborz Jahanian2011-01-0422-32/+26
| | | | | | // rdar://8818375 llvm-svn: 122831
* Reverting an old optimization that conflicts with the new allocator model, ↵Howard Hinnant2011-01-044-91/+1
| | | | | | and causes some test casees to compile that shouldn't. llvm-svn: 122830
* Eliminate a warning compiling with llvm-gcc. (IMO theDale Johannesen2011-01-041-1/+1
| | | | | | warning is overzealous but gcc is what it is.) llvm-svn: 122829
* Complete the NumberTable --> LeaderTable rename.Owen Anderson2011-01-041-12/+12
| | | | llvm-svn: 122828
* Fix typo in a comment.Owen Anderson2011-01-041-1/+1
| | | | llvm-svn: 122827
* Prune #include's.Owen Anderson2011-01-041-10/+0
| | | | llvm-svn: 122826
* Marshall Clow's fix for Bug 8421.Howard Hinnant2011-01-042-3/+6
| | | | llvm-svn: 122825
* Test commit; added blank line to TODO.txtMarshall Clow2011-01-041-0/+1
| | | | llvm-svn: 122824
* Clarify terminology, settling on referring to what was the "number table" as ↵Owen Anderson2011-01-041-32/+32
| | | | | | | | the "leader table", and rename methods to make it much more clear what they're doing. llvm-svn: 122823
* When removing a value from GVN's leaders list, don't drop the Next pointer ↵Owen Anderson2011-01-041-1/+2
| | | | | | in a corner case. llvm-svn: 122822
* Improve the accuracy of the inlining heuristic looking for theDale Johannesen2011-01-041-9/+14
| | | | | | | | | | case where a static caller is itself inlined everywhere else, and thus may go away if it doesn't get too big due to inlining other things into it. If there are references to the caller other than calls, it will not be removed; account for this. This results in same-day completion of the case in PR8853. llvm-svn: 122821
* Implement name mangling for sizeof...(pack), to silence the last ofDouglas Gregor2011-01-041-0/+22
| | | | | | | the switch-enum warnings. Test is forthcoming, once I've dealt with some template argument deduction issues. llvm-svn: 122820
* Branch instructions don't produce values, so there's no need to generate a ↵Owen Anderson2011-01-041-5/+3
| | | | | | | | | value number for them. This avoids adding them to the various value numbering tables, resulting in a minor (~3%) speedup for GVN on 40.gcc. llvm-svn: 122819
* There is nothing interesting to analyze with a sizeof...(pack) expressionDouglas Gregor2011-01-041-0/+1
| | | | llvm-svn: 122818
* Remove commented out code.Owen Anderson2011-01-041-4/+0
| | | | llvm-svn: 122817
* Give MachineFunctionAnalysis a getPassName() implementation to make timing ↵Owen Anderson2011-01-041-0/+4
| | | | | | reports prettier. llvm-svn: 122816
* Switch to the new style of asterisk placement.Cameron Zwarich2011-01-041-8/+8
| | | | llvm-svn: 122815
* fix an off-by-one bug that caused a crash analyzingChris Lattner2011-01-042-1/+38
| | | | | | ashr's with huge shift amounts, PR8896 llvm-svn: 122814
* Implement the sizeof...(pack) expression to compute the length of aDouglas Gregor2011-01-0420-5/+348
| | | | | | | | | parameter pack. Note that we're missing proper libclang support for the new SizeOfPackExpr expression node. llvm-svn: 122813
* UnitTests/Path: Produce useful diagnostics on error.Michael J. Spencer2011-01-041-17/+25
| | | | llvm-svn: 122812
* Switch to path halving from path compression for a small speedup. This alsoCameron Zwarich2011-01-041-6/+12
| | | | | | makes getLeader() nonrecursive. llvm-svn: 122811
* Include llvm-gcc dir before llvm_tools_dirTobias Grosser2011-01-041-6/+12
| | | | | | This ensures that always the recently compiled tools are picked for testing. llvm-svn: 122810
* These methods should be "const"; make them so.Duncan Sands2011-01-042-6/+6
| | | | llvm-svn: 122809
* Disable r122754 on Windows: was causing all lit tests to fail.Francois Pichet2011-01-041-1/+5
| | | | llvm-svn: 122808
* Prefer getAs<ComplexType> rather than cast<ComplexType> on canonical type. ↵Abramo Bagnara2011-01-041-11/+10
| | | | | | Suggestion by Douglas Gregor! llvm-svn: 122807
* Teach loop-idiom to turn a loop containing a memset into a larger memsetChris Lattner2011-01-042-18/+102
| | | | | | | | | | | | | | | | when safe. The testcase is basically this nested loop: void foo(char *X) { for (int i = 0; i != 100; ++i) for (int j = 0; j != 100; ++j) X[j+i*100] = 0; } which gets turned into a single memset now. clang -O3 doesn't optimize this yet though due to a phase ordering issue I haven't analyzed yet. llvm-svn: 122806
* restructure this a bit. Initialize the WeakVH with "I", theChris Lattner2011-01-041-11/+14
| | | | | | | | instruction *after* the store. The store will always be deleted if the transformation kicks in, so we'd do an N^2 scan of every loop block. Whoops. llvm-svn: 122805
* Implement -Wself-assign, which warns on code such as:Chandler Carruth2011-01-044-0/+89
| | | | | | | | | | | | | | | | int x = 42; x = x; // Warns here. The warning avoids macro expansions, templates, user-defined assignment operators, and volatile types, so false positives are expected to be low. The common (mis-)use of this code pattern is to silence unused variable warnings, but a more idiomatic way of doing that is '(void)x;'. A follow-up to this will add a note and fix-it hint suggesting this replacement in cases where the StmtExpr consists precisely of the self assignment. llvm-svn: 122804
* Eliminate repeated allocation of a per-BB DenseMap for a 4.6% reduction of timeCameron Zwarich2011-01-041-6/+5
| | | | | | spent in StrongPHIElimination on 403.gcc. llvm-svn: 122803
* Enhance the diagnostic for negative array sizes to include theChandler Carruth2011-01-0412-14/+29
| | | | | | | | | | | declaration name of the array when present. This ensures that a poor-man's C++03 static_assert will include the user error message often embedded in the name. Update all the tests to reflect the new wording, and add a test for the name behavior. llvm-svn: 122802
* Avoid finding loop back edges when we are not splitting critical edges inCameron Zwarich2011-01-041-2/+4
| | | | | | CodeGenPrepare (which is the default behavior). llvm-svn: 122801
* Fixed a problem where constant results of expressionsSean Callanan2011-01-041-32/+29
| | | | | | | were not being created in the proper way, meaning results were getting lost. llvm-svn: 122800
* When creating the injected-class-name for a class template involving aDouglas Gregor2011-01-042-4/+5
| | | | | | | non-type template parameter pack, make sure to create a pack expansion for the corresponding template argument. llvm-svn: 122799
* Fixed the file ordering (alphabetic) in the Commands folder.Greg Clayton2011-01-041-2/+3
| | | | llvm-svn: 122797
* Don't pattern match "/clang" so we don't mangle directory names. SomeDavid Greene2011-01-041-1/+2
| | | | | | tests use absolute paths to clang. llvm-svn: 122796
* Clean up a funky pass registration that got passed over when I got rid of ↵Owen Anderson2011-01-041-7/+1
| | | | | | static constructors. llvm-svn: 122795
* Fix the ARM IIC_iCMPsi itinerary and add an important assert.Andrew Trick2011-01-042-1/+3
| | | | llvm-svn: 122794
* Implement pack expansion of base initializers, so that we canDouglas Gregor2011-01-0410-33/+189
| | | | | | | initialize those lovely mixins that come from pack expansions of base specifiers. llvm-svn: 122793
* Rename MaybeSkipFunctionBodyForCodeCompletion -> ↵Argyrios Kyrtzidis2011-01-043-11/+13
| | | | | | | | trySkippingFunctionBodyForCodeCompletion and check isCodeCompletionEnabled() before doing the call. Suggestions by Chris. llvm-svn: 122792
* Address most of Duncan's review comments. Also, make LoopInstSimplify a simpleCameron Zwarich2011-01-041-37/+15
| | | | | | | | | | | | FunctionPass. It probably doesn't have a reason to be a LoopPass, as it will probably drop the simple fixed point and either use RPO iteration or Duncan's approach in instsimplify of only revisiting instructions that have changed. The next step is to preserve LoopSimplify. This looks like it won't be too hard, although the pass manager doesn't actually seem to respect when non-loop passes claim to preserve LCSSA or LoopSimplify. This will have to be fixed. llvm-svn: 122791
* use the very-handy getTruncateOrZeroExtend helper function, andChris Lattner2011-01-041-14/+6
| | | | | | | stop setting NSW: signed overflow is possible. Thanks to Dan for pointing these out. llvm-svn: 122790
* Formatting changes. No functionality change.Bill Wendling2011-01-031-80/+77
| | | | llvm-svn: 122789
* Fix comment.Owen Anderson2011-01-031-1/+1
| | | | llvm-svn: 122788
* Use the new addEscapingValue callback to update GlobalsModRef when GVN adds ↵Owen Anderson2011-01-033-2/+31
| | | | | | | | PHIs of GEPs. For the moment, have GlobalsModRef handle this conservatively by simply removing the value from its maps. llvm-svn: 122787
* Convert MC tests to .s so codegen changes won't break them.Evan Cheng2011-01-035-127/+184
| | | | llvm-svn: 122786
* Duncan deftly points out that readnone functions aren'tChris Lattner2011-01-032-1/+18
| | | | | | | invalidated by stores, so they can be handled as 'simple' operations. llvm-svn: 122785
* Fix 80 column violation.Argyrios Kyrtzidis2011-01-031-1/+2
| | | | llvm-svn: 122784
* Use pushq / popq instead of subq $8, %rsp / addq $8, %rsp to adjust stack inEvan Cheng2011-01-039-181/+258
| | | | | | | | | | | prologue and epilogue if the adjustment is 8. Similarly, use pushl / popl if the adjustment is 4 in 32-bit mode. In the epilogue, takes care to pop to a caller-saved register that's not live at the exit (either return or tailcall instruction). rdar://8771137 llvm-svn: 122783
* Implement pack expansions whose pattern is a base-specifier.Douglas Gregor2011-01-0312-20/+160
| | | | llvm-svn: 122782
OpenPOWER on IntegriCloud