summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Factor a little more code into EmitCmp, which should have been done in the firstChad Rosier2011-10-261-23/+16
| | | | | | place. No functional change intended. llvm-svn: 143078
* Use EmitCmp in SelectBranch. No functional change intended.Chad Rosier2011-10-261-33/+6
| | | | llvm-svn: 143076
* Reflow lines, fix comments for doxygen style, fix whitespace. No functionalityNick Lewycky2011-10-262-34/+27
| | | | | | change. llvm-svn: 143074
* Factor out an EmitCmp function that can be used by both SelectCmp andChad Rosier2011-10-261-18/+24
| | | | | | SelectBranch. No functional change intended. llvm-svn: 143072
* Trailing whitespace.Jim Grosbach2011-10-261-2/+2
| | | | llvm-svn: 143071
* Thumb2 ldr pc-relative encoding fixes.Jim Grosbach2011-10-262-7/+16
| | | | | | | | | We were parsing label references to the i12 encoding, which isn't right. They need to go to the pci variant instead. More of rdar://10348687 llvm-svn: 143068
* Fixes an issue reported by -verify-machineinstrs.Rafael Espindola2011-10-262-6/+7
| | | | | | Patch by Sanjoy Das. llvm-svn: 143064
* ARM parse parenthesized expressions for label references.Jim Grosbach2011-10-261-0/+1
| | | | | | Partial fix for rdar://10348687. llvm-svn: 143063
* This commit introduces two fake instructions MORESTACK_RET andRafael Espindola2011-10-263-21/+39
| | | | | | | | | | | | MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET followed by a MOV respectively. Having a fake instruction prevents the verifier from seeing a MachineBasicBlock end with a non-terminator (MOV). It also prevents the rather eccentric case of a MachineBasicBlock ending with RET but having successors nevertheless. Patch by Sanjoy Das. llvm-svn: 143062
* Make sure short memsets on ARM lower to stores, even when optimizing for size.Lang Hames2011-10-261-0/+2
| | | | llvm-svn: 143055
* The maximum power of 2 dividing a power of 2 is itself. This occursDuncan Sands2011-10-262-10/+36
| | | | | | in 403.gcc and was spotted by my super-optimizer. llvm-svn: 143054
* Add support for scattered relocations to the MachO relocatation pretty printer.Owen Anderson2011-10-261-86/+144
| | | | llvm-svn: 143051
* On an ELF system, ".debug_str" is mergeable and contains null terminated stringsNick Lewycky2011-10-261-2/+3
| | | | | | composed of one byte characters. llvm-svn: 143044
* 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
OpenPOWER on IntegriCloud