summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Make tTAILJMPr/tTAILJMPrND emit a tBX without a preceding MOV of PC to LR. ThisCameron Zwarich2011-05-251-1/+1
| | | | | | fixes <rdar://problem/9495913> llvm-svn: 132042
* Change the order of tBX's operands so that the predicate operands come after theCameron Zwarich2011-05-252-2/+11
| | | | | | | | | target register, matching BX. I filed this bug because I was confused at first: PR10007 - ARM branch instructions have inconsistent predicate operand placement <http://llvm.org/bugs/show_bug.cgi?id=10007> llvm-svn: 132041
* Rename tBX_Rm to tBX.Cameron Zwarich2011-05-252-5/+4
| | | | llvm-svn: 132040
* Rename the existing tBX/tBXr9 instructions to tBX_CALL/tBXr9_CALL to betterCameron Zwarich2011-05-252-3/+3
| | | | | | reflect their actual meaning and match the ARM instructions. llvm-svn: 132039
* indvars: fixed IV cloning in -disable-iv-rewrite mode with associatedAndrew Trick2011-05-251-52/+114
| | | | | | cleanup and overdue test cases. llvm-svn: 132038
* Add a test for .seh_pushframe parsing. Fix the bug exposed by it (and anotherCharles Davis2011-05-251-6/+9
| | | | | | one I found by inspection). llvm-svn: 132037
* Replace the -unwind-tables option with a per function flag. This is moreRafael Espindola2011-05-2510-20/+14
| | | | | | | LTO friendly as we can now correctly merge files compiled with or without -fasynchronous-unwind-tables. llvm-svn: 132033
* Fix lowering of DYNAMIC_STACKALLOC nodes.Akira Hatanaka2011-05-251-2/+20
| | | | llvm-svn: 132030
* Add a test for the .seh_handler directive. Fix problems with the parsingCharles Davis2011-05-251-23/+22
| | | | | | | method exposed by the test. While we're at it, simplify the .seh_proc parsing method. llvm-svn: 132028
* Fix PR9762Bruno Cardoso Lopes2011-05-251-0/+2
| | | | | | Enable the parsing of the operand "cpsr_all" for the ARM msr instruction llvm-svn: 132026
* Forgot dyn_cast check.Evan Cheng2011-05-241-4/+4
| | | | llvm-svn: 132025
* Implement the arm 'L' asm modifier.Eric Christopher2011-05-241-1/+5
| | | | | | Part of rdar://9119939 llvm-svn: 132024
* Implement the immediate part of the 'B' modifier.Eric Christopher2011-05-241-0/+4
| | | | | | Part of rdar://9119939 llvm-svn: 132023
* Fix LoopUnswitch bug. RewriteLoopBodyWithConditionConstant can delete a deadEvan Cheng2011-05-241-13/+34
| | | | | | | | | | | case of a switch instruction. Back off this optimization when this would eliminate all of the predecessors to the latch. Sorry, I am unable to reduce a reasonably sized test case. rdar://9486843 llvm-svn: 132022
* Add more unimplemented asm modifiers and some documentation of what theyEric Christopher2011-05-241-3/+13
| | | | | | | | do. Part of rdar://9119939. llvm-svn: 132015
* Add support for the arm 'y' asm modifier.Eric Christopher2011-05-241-0/+12
| | | | | | Fixes part of rdar://9444657 llvm-svn: 132011
* Test basic SEH directive-parsing functionality. Fix a latent bug exposed byCharles Davis2011-05-241-1/+2
| | | | | | this test. llvm-svn: 132004
* Enable printing of immediates that do not fit in 16-bit. .cprestore can haveAkira Hatanaka2011-05-244-4/+4
| | | | | | offsets that are larger than 0x10000. llvm-svn: 132003
* Change condition for determining whether a function is small for inlining ↵Eli Friedman2011-05-241-1/+1
| | | | | | | | metrics so that very long functions with few basic blocks are not re-analyzed. llvm-svn: 131994
* Implement the rest of the SEH directive-parsing methods in the COFFAsmParser.Charles Davis2011-05-241-11/+112
| | | | | | | | | Add a size alignment check to the .seh_stackalloc directive parser. Add a more descriptive error message to the .seh_handler directive parser. Add methods to the TargetAsmInfo struct in support of all this. llvm-svn: 131992
* Implement byval structure argument passing. The following limitations orAkira Hatanaka2011-05-241-5/+115
| | | | | | | | | | deficiencies exist: - Works only if ABI is o32. - Zero-sized structures cannot be passed. - There is a lot of redundancy in generated code. llvm-svn: 131986
* Make instcombine O(N) instead of O(N^2) in code where the same simplifiable ↵Eli Friedman2011-05-241-10/+11
| | | | | | | | constant is used many times. Part of rdar://9471075. llvm-svn: 131979
* Remove dead code.Devang Patel2011-05-242-13/+0
| | | | llvm-svn: 131974
* Make DecomposeGEPExpression check SimplifyInstruction onlyDan Gohman2011-05-241-9/+12
| | | | | | | | after checking for a GEP, so that it matches what GetUnderlyingObject does. This fixes an obscure bug turned up by bugpoint in the testcase for PR9931. llvm-svn: 131971
* Add a method to TargetRegisterInfo to get the register number that the Win64 EHCharles Davis2011-05-242-0/+24
| | | | | | | scheme uses internally. Implement it for x86 (the only architecture that LLVM supports for which this matters right now). llvm-svn: 131969
* Clean up the lazy initialization of DIBuilder a bit.Cameron Zwarich2011-05-243-11/+6
| | | | llvm-svn: 131956
* Make LoadAndStorePromoter preserve debug info and create llvm.dbg.values whenCameron Zwarich2011-05-245-26/+53
| | | | | | promoting allocas to SSA variables. Fixes <rdar://problem/9479036>. llvm-svn: 131953
* Explain FIXME.Rafael Espindola2011-05-241-4/+5
| | | | llvm-svn: 131952
* Fix the defaults for .eh_frame. We were marking it as writable.Rafael Espindola2011-05-241-2/+2
| | | | llvm-svn: 131951
* - Teach SelectionDAG::isKnownNeverZero to return true (op x, c) when c isEvan Cheng2011-05-242-12/+30
| | | | | | | | | | non-zero. - Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero. rdar://9490949 llvm-svn: 131948
* Simplify offset calculation of stack frame objects for $gp restore location andAkira Hatanaka2011-05-241-56/+31
| | | | | | | | variable arguments in LowerCall and LowerFormalArguments. This should also fix the bug in which handling of variable arguments is incorrect when the front-end optimizes away unused fixed arguments. llvm-svn: 131942
* Fix debug info for blocks' variable.Devang Patel2011-05-241-6/+21
| | | | llvm-svn: 131940
* Remove unnecessary comment.Devang Patel2011-05-231-1/+0
| | | | llvm-svn: 131936
* Expand f64 FPOW.Akira Hatanaka2011-05-231-0/+1
| | | | llvm-svn: 131928
* Add pattern for double-to-integer conversion. Patch by Sasa Stankovic.Akira Hatanaka2011-05-231-0/+1
| | | | llvm-svn: 131927
* Revert 121907 (it causes llc crash) and apply original patch from PR9817.Devang Patel2011-05-232-3/+3
| | | | llvm-svn: 131926
* Fixes related to coding style.Akira Hatanaka2011-05-231-36/+36
| | | | llvm-svn: 131922
* When checking for signed multiplication overflow, watch out for INT_MIN and -1.Dan Gohman2011-05-231-0/+2
| | | | | | This fixes PR9845. llvm-svn: 131919
* Propagate error correctly in the MC Asm parser for leading '$' expressions.Jim Grosbach2011-05-231-1/+1
| | | | llvm-svn: 131918
* Fix MipsAsmPrinter::printSavedRegsBitmaskChange. Remove functions and variablesAkira Hatanaka2011-05-232-38/+40
| | | | | | in MipsFunctionInfo that are no longer used. llvm-svn: 131917
* clarify this, apparently it is confusing :)Chris Lattner2011-05-231-1/+3
| | | | llvm-svn: 131916
* Change StackDirection from StackGrowsUp to StackGrowsDown.Akira Hatanaka2011-05-235-212/+60
| | | | | | | | | | | | | | | | The following improvements are accomplished as a result of applying this patch: - Fixed frame objects' offsets (relative to either the virtual frame pointer or the stack pointer) are set before instruction selection is completed. There is no need to wait until Prologue/Epilogue Insertion is run to set them. - Calculation of final offsets of fixed frame objects is straightforward. It is no longer necessary to assign negative offsets to fixed objects for incoming arguments in order to distinguish them from the others. - Since a fixed object has its relative offset set during instruction selection, there is no need to conservatively set its alignment to 4. - It is no longer necessary to reorder non-fixed frame objects in MipsFrameLowering::adjustMipsStackFrame. llvm-svn: 131915
* Preserve debug info during iSel by keeping DanglingDebugInfoMap live until ↵Devang Patel2011-05-233-1/+19
| | | | | | | | end of function. Patch by Micah Villmow llvm-svn: 131908
* While replacing all uses of a SDValue with another value, do not forget to ↵Devang Patel2011-05-231-0/+3
| | | | | | transfer SDDbgValue. llvm-svn: 131907
* Clear list of instructions without DebugLoc.Devang Patel2011-05-231-0/+1
| | | | llvm-svn: 131906
* Implement .seh_stackalloc and .seh_pushframe parsing.Charles Davis2011-05-231-4/+27
| | | | | | | | | I haven't implemented any of the ones that take registers yet. The problem is that for x86-64 the streamer methods expect a native x86 register number (note: %r8-%r15 want 8-15 instead of 0-7; same for %xmm8-%xmm15). I haven't figured out exactly how I want to do that yet. llvm-svn: 131899
* fix a really nasty basicaa mod/ref calculation bug that was causing ↵Chris Lattner2011-05-231-2/+5
| | | | | | | | miscompilation of UnitTests/ObjC/messages-2.m with the recent optimizer improvements. llvm-svn: 131897
* Fix <rdar://problem/9476260> by having tail calls always generate 32-bit ↵Cameron Zwarich2011-05-231-1/+3
| | | | | | | | branches in Darwin Thumb2 code. Tail calls are already disabled on Thumb1. llvm-svn: 131894
* rearrange two transforms, since one subsumes the other. Make the ↵Chris Lattner2011-05-231-16/+23
| | | | | | | | shift-exactness xform recurse. llvm-svn: 131888
* Transform any logical shift of a power of two into an exact/NUW shift whenChris Lattner2011-05-231-0/+17
| | | | | | in a known-non-zero context. llvm-svn: 131887
OpenPOWER on IntegriCloud