summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* use the valuetracking isPowerOfTwo function, which is more powerful than ↵Chris Lattner2011-05-231-4/+4
| | | | | | | | checking for a constant directly. Thanks to Duncan for pointing this out. llvm-svn: 131885
* Teach valuetracking that byval arguments with a specified alignment areChris Lattner2011-05-232-6/+21
| | | | | | | | | | | | | | | | | | | | | | aligned. Teach memcpyopt to not give up all hope when confonted with an underaligned memcpy feeding an overaligned byval. If the *source* of the memcpy can be determined to be adequeately aligned, or if it can be forced to be, we can eliminate the memcpy. This addresses PR9794. We now compile the example into: define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp { entry: %call = call i32 @g(%struct.p* byval align 8 %q) nounwind ret i32 %call } in both x86-64 and x86-32 mode. We still don't get a tailcall though, because tailcalls apparently can't handle byval. llvm-svn: 131884
* add a helper method to get the byval alignment of an argument.Chris Lattner2011-05-221-0/+6
| | | | llvm-svn: 131883
* Eliminate some temporary variables, and don't call getByValTypeAlignmentChris Lattner2011-05-221-6/+8
| | | | | | when we're just going to throw the result away. No functionality change. llvm-svn: 131880
OpenPOWER on IntegriCloud