summaryrefslogtreecommitdiff
path: root/lib/CodeGen
Commit message (Collapse)AuthorAge
* Use archive libraries instead of object files for VMCore, BCReader,Reid Spencer2006-06-01
| | | | | | | | BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate these changes. This was done to speed up link times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
* commuteInstruction() does not always create a new MI!Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28592 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate a memory leak.Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28585 91177308-0d34-0410-b5e6-96231b3b80d8
* visitVBinOp: Can't fold divide by zero!Evan Cheng2006-05-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28584 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure the register pressure reduction schedulers work for non-uniformEvan Cheng2006-05-30
| | | | | | | latency targets, e.g. PPC32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28561 91177308-0d34-0410-b5e6-96231b3b80d8
* When a priority_queue is empty, the behavior of top() operator isEvan Cheng2006-05-30
| | | | | | | non-deterministic. Returns NULL when it's empty! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28560 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):Chris Lattner2006-05-27
| | | | | | | | | | | | | | | | | | | SimplifySelectOps would eliminate a Select, delete it, then return true. The clients would see that it did something and return null. The top level would see a null return, and decide that nothing happened, proceeding to process the node in other ways: boom. The fix is simple: clients of SimplifySelectOps should return the select node itself. In order to catch really obnoxious boogs like this in the future, add an assert that nodes are not deleted. We do this by checking for a sentry node type that the SDNode dtor sets when a node is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28514 91177308-0d34-0410-b5e6-96231b3b80d8
* Make CALL node consistent with RET node. Signness of value has type MVT::i32Evan Cheng2006-05-26
| | | | | | | | instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type for most (if not all) platforms while MVT::i1 is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28511 91177308-0d34-0410-b5e6-96231b3b80d8
* Change RET node to include signness information of the return values. e.g.Evan Cheng2006-05-26
| | | | | | | RET chain, value1, sign1, value2, sign2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28509 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a bogus cast.Evan Cheng2006-05-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28492 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn on -sched-commute-nodes by default.Evan Cheng2006-05-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28465 91177308-0d34-0410-b5e6-96231b3b80d8
* CALL node change: now including signness of every argument.Evan Cheng2006-05-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28461 91177308-0d34-0410-b5e6-96231b3b80d8
* Patches to make the LLVM sources more -pedantic clean. Patch providedChris Lattner2006-05-24
| | | | | | | by Anton Korobeynikov! This is a step towards closing PR786. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
* -enable-unsafe-fp-math implies -enable-finite-only-fp-mathEvan Cheng2006-05-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28437 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix missing includeVladimir Prus2006-05-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28435 91177308-0d34-0410-b5e6-96231b3b80d8
* Incorrect SETCC CondCode used for FP comparisons.Evan Cheng2006-05-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28433 91177308-0d34-0410-b5e6-96231b3b80d8
* lib/Target/Target.tdEvan Cheng2006-05-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28386 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the result of the call to use a correct vbitconvert. There is no need toChris Lattner2006-05-17
| | | | | | | use getPackedTypeBreakdown at all here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28365 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct a previous patch which broke CodeGen/PowerPC/vec_call.llChris Lattner2006-05-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28364 91177308-0d34-0410-b5e6-96231b3b80d8
* Another typo. Pointed out by Nate Begeman.Evan Cheng2006-05-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28353 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed a LowerCallTo and LowerArguments bug. They were introducing illegalEvan Cheng2006-05-17
| | | | | | | | | VBIT_VECTOR nodes. There were some confusion about the semantics of getPackedTypeBreakdown(). e.g. for <4 x f32> it returns 1 and v4f32, not 4, and f32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28352 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an obvious bug in getPackedTypeBreakdown. Return 1 if type is legal.Evan Cheng2006-05-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28351 91177308-0d34-0410-b5e6-96231b3b80d8
* When we legalize target nodes, do not use getNode to create a new node,Chris Lattner2006-05-17
| | | | | | | | | | | | | use UpdateNodeOperands to just update the operands! This is important because getNode will allocate a new node if the node returns a flag and this breaks assumptions in the legalizer that you can legalize some things multiple times and get exactly the same results. This latent bug was exposed by my ppc patch last night, and this fixes gsm/toast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28348 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an assertion, avoid some unneeded work for each call. No functionalityChris Lattner2006-05-17
| | | | | | | change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28347 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for calls that pass and return legal vectors.Chris Lattner2006-05-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28340 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallToChris Lattner2006-05-16
| | | | | | | produce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28338 91177308-0d34-0410-b5e6-96231b3b80d8
* this should be 128 I thinkAndrew Lenharth2006-05-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28330 91177308-0d34-0410-b5e6-96231b3b80d8
* Move this code to a common placeAndrew Lenharth2006-05-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28329 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a chain to FORMAL_ARGUMENTS. This is a minimal port of the X86 backend,Chris Lattner2006-05-16
| | | | | | | | it doesn't currently use/maintain the chain properly. Also, make the X86ISelLowering.cpp file 80-col clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28320 91177308-0d34-0410-b5e6-96231b3b80d8
* Move function-live-in-handling code from the sdisel code to the scheduler.Chris Lattner2006-05-16
| | | | | | | | | | This code should be emitted after legalize, so it can't be in sdisel. Note that the EmitFunctionEntryCode hook should be updated to operate on the DAG. The X86 backend is the only one currently using this hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28315 91177308-0d34-0410-b5e6-96231b3b80d8
* Print the vreg that livein physregs are live inChris Lattner2006-05-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28314 91177308-0d34-0410-b5e6-96231b3b80d8
* Legalize FORMAL_ARGUMENTS nodes correctly, we don't want to legalize them onceChris Lattner2006-05-16
| | | | | | | for each argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28313 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixing 2006-05-01-SchedCausingSpills.ll; some clean upEvan Cheng2006-05-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28279 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert an un-intended changeEvan Cheng2006-05-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28278 91177308-0d34-0410-b5e6-96231b3b80d8
* Merge identical code.Chris Lattner2006-05-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28274 91177308-0d34-0410-b5e6-96231b3b80d8
* If the register allocator cannot find a register to spill, try the aliases. IfEvan Cheng2006-05-12
| | | | | | | | that still fails (because all the register spill weights are inf), just grab one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28262 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead varsChris Lattner2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28255 91177308-0d34-0410-b5e6-96231b3b80d8
* remove dead varsChris Lattner2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28254 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead variableChris Lattner2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28253 91177308-0d34-0410-b5e6-96231b3b80d8
* Comment out dead variablesChris Lattner2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28252 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead varChris Lattner2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28250 91177308-0d34-0410-b5e6-96231b3b80d8
* Compile:Chris Lattner2006-05-12
| | | | | | | | | | | %tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28244 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor a bunch of includes so that TargetMachine.h doesn't have to includeOwen Anderson2006-05-12
| | | | | | | | TargetData.h. This should make recompiles a bit faster with my current TargetData tinkering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28238 91177308-0d34-0410-b5e6-96231b3b80d8
* Backing out fix for PR770. Need to re-apply it after live range splitting is ↵Evan Cheng2006-05-12
| | | | | | possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28236 91177308-0d34-0410-b5e6-96231b3b80d8
* Duh. That could take a long time.Evan Cheng2006-05-12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28235 91177308-0d34-0410-b5e6-96231b3b80d8
* Two simplifications for token factor nodes: simplify tf(x,x) -> x.Chris Lattner2006-05-12
| | | | | | | simplify tf(x,y,y,z) -> tf(x,y,z). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28233 91177308-0d34-0410-b5e6-96231b3b80d8
* Add capability to scheduler to commute nodes for profit.Evan Cheng2006-05-12
| | | | | | | | If a two-address code whose first operand has uses below, it should be commuted when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28230 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor scheduler code. Move register-reduction list scheduler to aEvan Cheng2006-05-11
| | | | | | | | separate file. Added an initial implementation of top-down register pressure reduction list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28226 91177308-0d34-0410-b5e6-96231b3b80d8
* Set weight of zero length intervals to infinite to prevent them from beingEvan Cheng2006-05-11
| | | | | | | spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28220 91177308-0d34-0410-b5e6-96231b3b80d8
* Backing out previous check-in.Evan Cheng2006-05-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28219 91177308-0d34-0410-b5e6-96231b3b80d8