aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2007-05-18Merging from mainline (inline asm fix)Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_20@37211 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-10Merging from mainlineTanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_20@36970 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-10Merge from mainline PR1403Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_20@36968 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Forgot a check.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36910 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Enable a couple of xforms:Evan Cheng
- (store (bitconvert v)) -> (store v) if resultant store does not require higher alignment - (bitconvert (load v)) -> (load (bitconvert*)v) if resultant load does not require higher alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36908 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Handle some non-exit blocks in tail merging.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36907 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07Parameter attributes on invoke calls were being lost due to the wrongDuncan Sands
attribute index being used. Fix proposed by Anton Korobeynikov, who asked me to implement and commit it for him. This is PR1398. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36906 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06DetabifyAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36891 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06Fix typo in comment.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05Use the personality function that was registered with MMI rather thanDuncan Sands
hardwiring in the C++ one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36789 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05Propagate alignment/volatility in two places.Chris Lattner
Implement support for expanding a bitcast from an illegal vector type to a legal one (e.g. 4xi32 -> 4xf32 in SSE1). This fixes PR1371 and CodeGen/X86/2007-05-05-VecCastExpand.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36787 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05Spelling fix.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05Emit sections/directives in the proper order. This fixes PR1376. Also,Anton Korobeynikov
some small cleanup was made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36780 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04A bitcast of a global variable may have been constant folded to a GEP -Duncan Sands
handle this case too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36745 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03Don't create indexed load / store with zero offset!Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36716 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03Allow i/s to match (gv+c). This fixes ↵Chris Lattner
CodeGen/PowerPC/2007-05-03-InlineAsm-S-Constraint.ll and PR1382 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36672 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03Drop 'const'Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02Properly set arguments bitwidth of EHSELECT nodeAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36654 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02Use 'static const char' instead of 'static const int'.Devang Patel
Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02Fix build error.Lauro Ramos Venancio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36648 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01Fix couple of bugs connected with eh info:Anton Korobeynikov
1. Correct output offsets on Linux 2. Fix "style" of personality function. It shouldn't be indirect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01Do not use typeinfo to identify pass in pass manager.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01If call frame is not part of stack frame and no dynamic alloc, ↵Evan Cheng
eliminateFrameIndex() must adjust SP offset with size of call frames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36625 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01Forgot about chain result; also UNDEF cannot have multiple values.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36622 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01llvm bug #1350, parts 1, 2, and 3.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01Under normal circumstances, when a frame pointer is not required, we reserveEvan Cheng
argument space for call sites in the function immediately on entry to the current function. This eliminates the need for add/sub sp brackets around call sites. However, this is not always a good idea. If the "call frame" is large and the target load / store instructions have small immediate field to encode sp offset, this can cause poor codegen. In the worst case, this can make it impossible to scavenge a register if the reserved spill slot is pushed too far apart from sp / fp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36607 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01* Only turn a load to UNDEF if all of its outputs have no uses (indexed loadsEvan Cheng
produce two results.) * Do not touch volatile loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30print isLandingPad() for MBBsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30Continue refactoring inline asm code. If there is an earlyclobber outputChris Lattner
register, preallocate all input registers and the early clobbered output. This fixes PR1357 and CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30Updates.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36594 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30refactor GetRegistersForValue to take OpInfo as an argument instead of variousChris Lattner
pieces of it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30refactor some code, no functionality changeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30Clean up multi-line asam string printing. Instead of printing:Chris Lattner
# InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End print: # InlineAsm Start subfc r3,r5,r4 subfze r4,r3 # InlineAsm End git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29generalize aggregate handlingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36568 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29Implement review feedbackAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36564 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28memory operands that have a direct operand should have their stores createdChris Lattner
before the copies into physregs are done. This avoids having flag operands skip the store, causing cycles in the dag at sched time. This fixes infinite loops on these tests: test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll for PR1308 test/CodeGen/PowerPC/2007-01-29-lbrx-asm.ll test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll test/CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll for PR828 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36547 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28eliminate more redundant constraint type analysisChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36546 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28merge constraint type analysis stuff together.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36545 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28Significant refactoring of the inline asm stuff, to support future changes.Chris Lattner
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28Implement review feedback. Aliasees can be either GlobalValue's orAnton Korobeynikov
bitcasts of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36537 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28memory inputs to an inline asm are required to have an address available.Chris Lattner
If the operand is not already an indirect operand, spill it to a constant pool entry or a stack slot. This fixes PR1356 and CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36536 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll andChris Lattner
CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36534 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28Fix this to match change to InlineAsm class.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36524 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27Fix incorrect legalization of EHSELECTOR. This fixesChris Lattner
CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not ↵Evan Cheng
available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36501 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27improve EH global handling, patch by Duncan Sands.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrapChris Lattner
successfully! woohoo... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36496 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26Fix a typo in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36485 91177308-0d34-0410-b5e6-96231b3b80d8