summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* The order of the two symbol listings in a Macho x86_64 subtractor relocation ↵Owen Anderson2011-10-261-1/+3
| | | | | | is reversed from what seems intuitive to me. llvm-svn: 143035
* Thumb2 remove redundant ".w" suffix from t2MVNCCi pattern.Jim Grosbach2011-10-261-1/+1
| | | | llvm-svn: 143034
* Include the full 64 bits of relocation data in the type info for MachO ↵Owen Anderson2011-10-261-1/+3
| | | | | | relocations, so that we can recognize scattered relocations. llvm-svn: 143033
* Expand relocation type field to 64 bits. MachO scattered relocations ↵Owen Anderson2011-10-263-4/+4
| | | | | | require 33 bits of type info. llvm-svn: 143032
* Improve pretty printing of GOT relocations in MachO on x86_64.Owen Anderson2011-10-261-0/+7
| | | | llvm-svn: 143031
* My super-optimizer noticed that we weren't folding this expression toDuncan Sands2011-10-261-4/+46
| | | | | | true: (x *nsw x) sgt 0, where x = (y | 1). This occurs in 464.h264ref. llvm-svn: 143028
* Simplify SplitVecRes_UnaryOp by removing all the code that isDuncan Sands2011-10-261-43/+5
| | | | | | | | | | | | | | | | | | | | trying to legalize the operand types when only the result type is required to be legalized - the type legalization machinery will get round to the operands later if they need legalizing. There can be a point to legalizing operands in parallel with the result: when this saves compile time or results in better code. There was only one case in which this was true: when the operand is also split, so keep the logic for that bit. As a result of this change, additional operand legalization methods may need to be introduced to handle nodes where the result and operand types can differ, like SIGN_EXTEND, but the testsuite doesn't contain any tests where this is the case. In any case, it seems better to require such methods (and die with an assert if they doesn't exist) than to quietly produce wrong code if we forgot to special case the node in SplitVecRes_UnaryOp. llvm-svn: 143026
* Revert r142530 at least temporarily while a discussion is had on ↵James Molloy2011-10-261-5/+2
| | | | | | llvm-commits regarding exactly how much optsize should optimize for size over performance. llvm-svn: 143023
* Use a worklist to prevent the iterator from becoming invalidated because of ↵Bill Wendling2011-10-261-3/+4
| | | | | | the 'removeSuccessor' call. Noticed in a Release+Asserts+Check buildbot. llvm-svn: 143018
* Remove unused variable.Eric Christopher2011-10-261-1/+0
| | | | llvm-svn: 143011
* Don't use floating point to do an integer's job.Jakob Stoklund Olesen2011-10-261-4/+7
| | | | | | | | | | | This code makes different decisions when compiled into x87 instructions because of different rounding behavior. That caused phase 2/3 miscompares on 32-bit Linux when the phase 1 compiler was built with gcc (using x87), and the phase 2 compiler was built with clang (using SSE). This fixes PR11200. llvm-svn: 143006
* Disable LICM speculation in high register pressure situation again now that ↵Evan Cheng2011-10-261-1/+1
| | | | | | Devang has fixed other issues. llvm-svn: 143003
* Revert part of r142530. The patch potentially hurts performance especiallyEvan Cheng2011-10-261-3/+3
| | | | | | | on Darwin platforms where -Os means optimize for size without hurting performance. llvm-svn: 143002
* Reapply r142920 with fix:Bill Wendling2011-10-261-0/+3
| | | | | | | | | | | | An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> llvm-svn: 143001
* The bitcode reader can create an shuffle with a place holder mask which it willMon P Wang2011-10-261-3/+10
| | | | | | | fix up later. For this special case, allow such a mask to be considered valid. <rdar://problem/8622574> llvm-svn: 142992
* Object/Archive: Cleanup anon namespace.Michael J. Spencer2011-10-251-8/+5
| | | | llvm-svn: 142983
* Object/Archive: Add BSD style long file name support and skip internal members.Michael J. Spencer2011-10-251-7/+48
| | | | llvm-svn: 142981
* Remove extraneous printing of "-PC".Owen Anderson2011-10-251-1/+0
| | | | llvm-svn: 142970
* Add support for the notion of "hidden" relocations. On MachO, these are ↵Owen Anderson2011-10-251-0/+32
| | | | | | | | relocation entries that are used as additional information for other, real relocations, rather than being relocations themselves. I'm not familiar enough with ELF or COFF to know if they should have any relocations marked hidden. llvm-svn: 142961
* Remove a couple redundant checks.Eli Friedman2011-10-251-2/+0
| | | | llvm-svn: 142959
* Make assert() message more informative.Jim Grosbach2011-10-251-1/+2
| | | | | | PR11217. llvm-svn: 142956
* Teach the MachO relocation pretty-printer to interpret ARM half-relocations.Owen Anderson2011-10-251-42/+104
| | | | llvm-svn: 142938
* This is the first of several patches for Mips direct object generation.Bruno Cardoso Lopes2011-10-252-0/+39
| | | | | | | | This first patch is for expression variable kinds. Patch by Jack Carter! llvm-svn: 142934
* Corrects previously incorrect $sp change in MipsCompilationCallback.Bruno Cardoso Lopes2011-10-251-7/+7
| | | | | | | | The address for $sp, and addresses for sdc1/ldc1 must be 8-byte aligned Patch by Petar Jovanovic. llvm-svn: 142930
* Revert commit 142891. Takumi bisected the tablegen miscompilesDuncan Sands2011-10-251-2/+1
| | | | | | | | | | | | | | down to this commit. Original commit message: An MBB which branches to an EH landing pad shouldn't be considered for tail merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> llvm-svn: 142920
* Restore commits 142790 and 142843 - they weren't breaking the buildDuncan Sands2011-10-251-26/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | bots. Original commit messages: - Reapply r142781 with fix. Original message: Enhance SCEV's brute force loop analysis to handle multiple PHI nodes in the loop header when computing the trip count. With this, we now constant evaluate: struct ListNode { const struct ListNode *next; int i; }; static const struct ListNode node1 = {0, 1}; static const struct ListNode node2 = {&node1, 2}; static const struct ListNode node3 = {&node2, 3}; int test() { int sum = 0; for (const struct ListNode *n = &node3; n != 0; n = n->next) sum += n->i; return sum; } - Now that we look at all the header PHIs, we need to consider all the header PHIs when deciding that the loop has stopped evolving. Fixes miscompile in the gcc torture testsuite! llvm-svn: 142919
* Fix the API usage in loop probability heuristics. It was incorrectlyChandler Carruth2011-10-251-15/+8
| | | | | | | | | | | | | | | classifying many edges as exiting which were in fact not. These mainly formed edges into sub-loops. It was also not correctly classifying all returning edges out of loops as leaving the loop. With this match most of the loop heuristics are more rational. Several serious regressions on loop-intesive benchmarks like perlbench's loop tests when built with -enable-block-placement are fixed by these updated heuristics. Unfortunately they in turn uncover some other regressions. There are still several improvemenst that should be made to loop heuristics including trip-count, and early back-edge management. llvm-svn: 142917
* Speculatively revert commits 142790 and 142843 to see if it fixesDuncan Sands2011-10-251-46/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | the dragonegg and llvm-gcc self-host buildbots. Original commit messages: - Reapply r142781 with fix. Original message: Enhance SCEV's brute force loop analysis to handle multiple PHI nodes in the loop header when computing the trip count. With this, we now constant evaluate: struct ListNode { const struct ListNode *next; int i; }; static const struct ListNode node1 = {0, 1}; static const struct ListNode node2 = {&node1, 2}; static const struct ListNode node3 = {&node2, 3}; int test() { int sum = 0; for (const struct ListNode *n = &node3; n != 0; n = n->next) sum += n->i; return sum; } - Now that we look at all the header PHIs, we need to consider all the header PHIs when deciding that the loop has stopped evolving. Fixes miscompile in the gcc torture testsuite! llvm-svn: 142916
* Remove dead enum value. There is no DIESectionOffset.Nick Lewycky2011-10-251-1/+0
| | | | llvm-svn: 142912
* Remove unused forward decl.Eric Christopher2011-10-251-1/+0
| | | | llvm-svn: 142892
* An MBB which branches to an EH landing pad shouldn't be considered for tail ↵Bill Wendling2011-10-251-1/+2
| | | | | | | | | | | | merging. In SjLj EH, the jump to the landing pad is not done explicitly through a branch statement. The EH landing pad is added as a successor to the throwing BB. Because of that however, the branch folding pass could mistakenly think that it could merge the throwing BB with another BB. This isn't safe to do. <rdar://problem/10334833> llvm-svn: 142891
* ARM assembly parsing and encoding for VLD1 with writeback.Jim Grosbach2011-10-253-17/+33
| | | | | | Four entry register lists. llvm-svn: 142882
* Remove the Blackfin backend.Dan Gohman2011-10-2538-4422/+0
| | | | llvm-svn: 142880
* Remove the SystemZ backend.Dan Gohman2011-10-2438-6284/+0
| | | | llvm-svn: 142878
* Nuke dead code. Nothing generates the VLD1d64QPseudo_UPD instruction.Jim Grosbach2011-10-243-4/+0
| | | | llvm-svn: 142877
* ARM assembly parsing and encoding for VLD1 w/ writeback.Jim Grosbach2011-10-244-21/+33
| | | | | | Three entry register list variation. llvm-svn: 142876
* More fixes and improvements to MachO relocation pretty-printing, particular ↵Owen Anderson2011-10-241-31/+127
| | | | | | for x86 and x86_64 relocations with addends. llvm-svn: 142875
* Don't crash on variable insertelement on ARM. PR10258.Eli Friedman2011-10-241-0/+11
| | | | llvm-svn: 142871
* Check the visibility of the global variable before placing it into the stubsBill Wendling2011-10-241-2/+6
| | | | | | | table. A hidden variable could potentially end up in both lists. <rdar://problem/10336715> llvm-svn: 142869
* ARMConstantPoolMBB::print should print BB number.Evan Cheng2011-10-241-0/+1
| | | | llvm-svn: 142867
* ARM assembly parsing and encoding for VLD1 w/ writeback.Jim Grosbach2011-10-242-0/+38
| | | | | | One and two length register list variants. llvm-svn: 142861
* ARM refactor am6offset usage for VLD1.Jim Grosbach2011-10-245-71/+181
| | | | | | | | Split am6offset into fixed and register offset variants so the instruction encodings are explicit rather than relying an a magic reg0 marker. Needed to being able to parse these. llvm-svn: 142853
* Get relocation parsing/dumping to a mostly-working state for MachO files.Owen Anderson2011-10-241-6/+127
| | | | llvm-svn: 142852
* Now that we look at all the header PHIs, we need to consider all the header PHIsNick Lewycky2011-10-241-6/+14
| | | | | | | when deciding that the loop has stopped evolving. Fixes miscompile in the gcc torture testsuite! llvm-svn: 142843
* Add support to the old JIT for acquire/release loads and stores on x86. ↵Eli Friedman2011-10-241-9/+24
| | | | | | PR11207. llvm-svn: 142841
* Stub out some of the MachO relocation decoding hooks.Owen Anderson2011-10-241-0/+4
| | | | llvm-svn: 142840
* Really unbreak CMake buildDouglas Gregor2011-10-241-3/+1
| | | | llvm-svn: 142822
* Unbreak CMake buildDouglas Gregor2011-10-241-0/+1
| | | | llvm-svn: 142821
* Fix a NEON disassembly case that was broken in the recent refactorings. As ↵Owen Anderson2011-10-241-6/+0
| | | | | | more of this code gets refactored, a lot of these manual decoding hooks should get smaller and/or go away entirely. llvm-svn: 142817
* Delete the top-down "Latency" scheduler. Top-down scheduling doesn't handleDan Gohman2011-10-241-265/+0
| | | | | | | physreg dependencies, and upcoming codegen changes will require proper physreg dependence handling. llvm-svn: 142816
OpenPOWER on IntegriCloud