summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* a byval argument is guaranteed to be valid to load.Chris Lattner2008-01-111-4/+19
| | | | llvm-svn: 45877
* Update this code to use eraseFromParent where possible. ComputeChris Lattner2008-01-111-26/+27
| | | | | | whether an argument is byval and pass into isSafeToPromoteArgument. llvm-svn: 45876
* replace a loop with a constant time check.Chris Lattner2008-01-111-3/+2
| | | | llvm-svn: 45875
* another minor datastructure tweak.Chris Lattner2008-01-111-1/+1
| | | | llvm-svn: 45874
* start using smallvector to avoid vector heap thrashing.Chris Lattner2008-01-111-6/+7
| | | | llvm-svn: 45873
* rename MachineInstr::setInstrDescriptor -> setDescChris Lattner2008-01-119-26/+26
| | | | llvm-svn: 45871
* remove xchg and shift-reg-by-1 instructions, which are dead.Chris Lattner2008-01-113-71/+6
| | | | llvm-svn: 45870
* add a note, remove a done deed.Chris Lattner2008-01-111-18/+3
| | | | llvm-svn: 45869
* hrm - correct spelling.Arnold Schwaighofer2008-01-111-6/+6
| | | | | | Actually were not riding any arguments. Sadly there is no semantic spell checker that is going to safe you from such a mistake. llvm-svn: 45868
* Improve tail call optimized call's argument lowering. Before thisArnold Schwaighofer2008-01-112-91/+79
| | | | | | | | | | | | | | | | commit all arguments where moved to the stack slot where they would reside on a normal function call before the lowering to the tail call stack slot. This was done to prevent arguments overwriting each other. Now only arguments sourcing from a FORMAL_ARGUMENTS node or a CopyFromReg node with virtual register (could also be a caller's argument) are lowered indirectly. --This line, and those below, will be ignored-- M X86/X86ISelLowering.cpp M X86/README.txt llvm-svn: 45867
* Correct a copy and paste error.Arnold Schwaighofer2008-01-111-1/+1
| | | | llvm-svn: 45865
* Some C backend ByVal parameter attribute support. Not yet complete.Evan Cheng2008-01-111-3/+30
| | | | llvm-svn: 45864
* Rename Int_CVTSI642SSr* to Int_CVTSI2SS64r* for naming consistency and ↵Evan Cheng2008-01-111-26/+16
| | | | | | remove unused instructions. llvm-svn: 45861
* more flags set rightChris Lattner2008-01-113-15/+24
| | | | llvm-svn: 45860
* add some missing flags.Chris Lattner2008-01-111-4/+16
| | | | llvm-svn: 45859
* add some notes.Chris Lattner2008-01-111-0/+18
| | | | llvm-svn: 45854
* When inlining a functino with a byval argument, make an explicit Chris Lattner2008-01-111-6/+57
| | | | | | copy of it in case the callee modifies the struct. llvm-svn: 45853
* A couple of obvious off-by-one bugs.Evan Cheng2008-01-111-4/+7
| | | | llvm-svn: 45852
* More CellSPU refinement and progress:Scott Michel2008-01-117-343/+370
| | | | | | | | | | | | | | | | | | | | - Cleaned up custom load/store logic, common code is now shared [see note below], cleaned up address modes - More test cases: various intrinsics, structure element access (load/store test), updated target data strings, indirect function calls. Note: This patch contains a refactoring of the LoadSDNode and StoreSDNode structures: they now share a common base class, LSBaseSDNode, that provides an interface to their common functionality. There is some hackery to access the proper operand depending on the derived class; otherwise, to do a proper job would require finding and rearranging the SDOperands sent to StoreSDNode's constructor. The current refactor errs on the side of being conservatively and backwardly compatible while providing functionality that reduces redundant code for targets where loads and stores are custom-lowered. llvm-svn: 45851
* Allow parameter attributes on varargs function parameters.Evan Cheng2008-01-111-4/+3
| | | | llvm-svn: 45850
* Weak zeroes don't go in bss on Darwin.Dale Johannesen2008-01-111-3/+4
| | | | llvm-svn: 45849
* Weak things initialized to 0 don't go in bss on Darwin.Dale Johannesen2008-01-114-19/+19
| | | | | | | Cosmetic changes to spacing to match gcc (some dejagnu tests actually care). llvm-svn: 45848
* Simplify the side effect stuff a bit more and make licm/sinkingChris Lattner2008-01-104-27/+49
| | | | | | | | | | | | | | | | both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. llvm-svn: 45843
* Clamp down on sinking of lots of instructions.Chris Lattner2008-01-101-0/+9
| | | | llvm-svn: 45841
* IMPLICIT_USE and IMPLICIT_DEF are dead, remove them.Chris Lattner2008-01-102-7/+0
| | | | llvm-svn: 45838
* add a noteChris Lattner2008-01-101-0/+50
| | | | llvm-svn: 45837
* Output sinl for a long double FSIN node, not sin.Duncan Sands2008-01-103-56/+64
| | | | | | | | Likewise fix up a bunch of other libcalls. While there I remove NEG_F32 and NEG_F64 since they are not used anywhere. This fixes 9 Ada ACATS failures. llvm-svn: 45833
* Only remat loads from immutable stack slots.Evan Cheng2008-01-101-2/+2
| | | | llvm-svn: 45831
* Simplify some code.Evan Cheng2008-01-101-8/+2
| | | | llvm-svn: 45830
* Start inferring side effect information more aggressively, and fix many bugs ↵Chris Lattner2008-01-106-75/+149
| | | | | | | | | | | | | | in the x86 backend where instructions were not marked maystore/mayload, and perf issues where instructions were not marked neverHasSideEffects. It would be really nice if we could write patterns for copy instructions. I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on other targets are probably not right in all cases, but no clients currently use this info that are enabled by default. llvm-svn: 45829
* rename X86InstrX86-64.td -> X86Instr64bit.tdChris Lattner2008-01-102-5/+5
| | | | llvm-svn: 45826
* add SDNPSideEffect node property declarationChris Lattner2008-01-101-0/+1
| | | | llvm-svn: 45825
* remove explicit sets of 'neverHasSideEffects' that can now be Chris Lattner2008-01-106-13/+12
| | | | | | inferred from the instr patterns. llvm-svn: 45824
* get def use info more correct.Chris Lattner2008-01-107-11/+19
| | | | llvm-svn: 45821
* add SDNPMayLoad to the 'load' sdnode definition. This is enough to get all ↵Chris Lattner2008-01-101-1/+3
| | | | | | | | the x86 instructions (with patterns) that load memory marked, for example. llvm-svn: 45818
* verify that the frame index is immutable before remat'ing (still disabled)Chris Lattner2008-01-101-7/+10
| | | | | | or being side-effect free. llvm-svn: 45816
* Don't use LiveVariables::VarInfo::DefInst.Owen Anderson2008-01-101-1/+8
| | | | llvm-svn: 45815
* Mark byval parameter stack objects mutable for now.Evan Cheng2008-01-101-7/+8
| | | | llvm-svn: 45813
* Emit unused EH frames for weak definitions on Darwin,Dale Johannesen2008-01-104-14/+24
| | | | | | | because assembler/linker can't cope with weak absolutes. PR 1880. llvm-svn: 45811
* Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the ↵Owen Anderson2008-01-101-58/+66
| | | | | | | | equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. llvm-svn: 45805
* Add more comments explaining the basics of how the decision of when to ↵Owen Anderson2008-01-101-7/+37
| | | | | | | | rename and when to insert copies is made. llvm-svn: 45799
* Do not use the stack pointer directly, issue a copyfromreg instead. ↵Evan Cheng2008-01-101-1/+1
| | | | | | Otherwise we can end up with something like ADD32ri %esp, x which two-address pass won't like. llvm-svn: 45798
* Get rid of the isKillInst predicate. LiveVariables already provides this ↵Owen Anderson2008-01-101-14/+10
| | | | | | information. llvm-svn: 45797
* Fix PR1845 and rdar://5676945. Generic vectors smallerChris Lattner2008-01-101-18/+22
| | | | | | | | | | | | | | than hardware supported type will be scalarized, so we can infer their alignment from that info. We now codegen pr1845 into: _boolVectorSelect: lbz r2, 0(r3) stb r2, -16(r1) blr llvm-svn: 45796
* Remove comments that do not correspond to anything after recent refactoring.Evan Cheng2008-01-101-41/+28
| | | | llvm-svn: 45792
* Copies need to be inserted before the first terminator, not at the end of ↵Owen Anderson2008-01-101-2/+2
| | | | | | the block. llvm-svn: 45791
* Special copy SUnit's do not have SDNode's.Evan Cheng2008-01-091-2/+2
| | | | llvm-svn: 45787
* Clean up StrongPHIElimination a bit, and add some more comments to the ↵Owen Anderson2008-01-091-6/+46
| | | | | | | | internal structures. There's still more work to do on this front. llvm-svn: 45783
* Fix compile failures with g++-4.3.Duncan Sands2008-01-092-0/+2
| | | | llvm-svn: 45781
* StrongPHIElim: Now with even fewer trivial bugs!Owen Anderson2008-01-091-2/+4
| | | | llvm-svn: 45775
OpenPOWER on IntegriCloud