summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* remove qsort for nowAndrew Lenharth2006-03-151-9/+0
| | | | llvm-svn: 26779
* allow field sensitivity to be a tunable parameterAndrew Lenharth2006-03-151-2/+6
| | | | llvm-svn: 26777
* Update scheduling info for vrsave instructionNate Begeman2006-03-151-2/+2
| | | | llvm-svn: 26776
* Handle one offset with growth case seen in povray. Namely, if we have an ↵Andrew Lenharth2006-03-151-10/+39
| | | | | | | | | offset, and the offset lands at a field boundary in the old type, construct a new type, copying the fields masked by the offset from the old type, and unify with that. llvm-svn: 26775
* improve mem intrinsics and add a few things povray usesAndrew Lenharth2006-03-151-3/+30
| | | | llvm-svn: 26774
* Bugfix, unbreaking CodeGen/PowerPC/cttz.llChris Lattner2006-03-141-1/+1
| | | | llvm-svn: 26764
* Fix an et-forest memory leak. Patch by Daniel Berlin.Chris Lattner2006-03-141-0/+1
| | | | llvm-svn: 26763
* add a noteChris Lattner2006-03-141-0/+8
| | | | llvm-svn: 26762
* 1. Use null for serialized empty strings.Jim Laskey2006-03-141-9/+17
| | | | | | | 2. Allow for user defined debug descriptors. 3. Allow for user augmented fields on debug descriptors. llvm-svn: 26760
* Fix an off by one error that caused PPC LLC failures last night.Chris Lattner2006-03-141-1/+1
| | | | llvm-svn: 26758
* Implement a FIXME, recusively reassociatingChris Lattner2006-03-141-26/+65
| | | | | | | | A*A*B + A*A*C --> A*(A*B+A*C) --> A*(A*(B+C)) This implements Reassociate/mul-factor3.ll llvm-svn: 26757
* extract some code into a method, no functionality changeChris Lattner2006-03-141-50/+56
| | | | llvm-svn: 26755
* transformation implementedChris Lattner2006-03-141-10/+0
| | | | llvm-svn: 26754
* Promote shifts by a constant to multiplies so that we can reassociateChris Lattner2006-03-141-13/+17
| | | | | | | (x<<1)+(y<<1) -> (X+Y)<<1. This implements Transforms/Reassociate/shift-factor.ll llvm-svn: 26753
* Convert llvm.cs.uiuc.edu -> llvm.orgReid Spencer2006-03-142-2/+2
| | | | llvm-svn: 26748
* 1. Handle removal of all arguments for a morphed intrinsic.Jim Laskey2006-03-141-1/+4
| | | | | | 2. Remove the declaration of llvm.dbg.declare. llvm-svn: 26745
* PPC LSR pass should use target lowering hooks.Evan Cheng2006-03-131-2/+2
| | | | llvm-svn: 26743
* Added getTargetLowering() to TargetMachine. Refactored targets to support this.Evan Cheng2006-03-1327-66/+97
| | | | llvm-svn: 26742
* UpdateEvan Cheng2006-03-131-0/+3
| | | | llvm-svn: 26741
* Add LSR hooks.Evan Cheng2006-03-132-4/+48
| | | | llvm-svn: 26740
* Added target lowering hooks which LSR consults to make more intelligentEvan Cheng2006-03-131-25/+33
| | | | | | transformation decisions. llvm-svn: 26738
* Handle builtins that directly correspond to GCC builtins.Chris Lattner2006-03-131-2/+25
| | | | llvm-svn: 26737
* For functions that use vector registers, save VRSAVE, mark usedChris Lattner2006-03-134-10/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | registers, and update it on entry to each function, then restore it on exit. This compiles: void func(vfloat *a, vfloat *b, vfloat *c) { *a = *b * *c + *c; } to this: _func: mfspr r2, 256 oris r6, r2, 49152 mtspr 256, r6 lvx v0, 0, r5 lvx v1, 0, r4 vmaddfp v0, v1, v0, v0 stvx v0, 0, r3 mtspr 256, r2 blr GCC produces this (which has additional stack accesses): _func: mfspr r0,256 stw r0,-4(r1) oris r0,r0,0xc000 mtspr 256,r0 lvx v0,0,r5 lvx v1,0,r4 lwz r12,-4(r1) vmaddfp v0,v0,v1,v0 stvx v0,0,r3 mtspr 256,r12 blr llvm-svn: 26733
* make sure dead token factor nodes are removed by the dag combiner.Chris Lattner2006-03-131-0/+1
| | | | llvm-svn: 26731
* Bring makefile back into compliance with standard by usingReid Spencer2006-03-131-1/+1
| | | | | | $(Echo) instead of @echo llvm-svn: 26730
* Handle the removal of the debug chain.Jim Laskey2006-03-137-61/+111
| | | | llvm-svn: 26729
* remove two implemented itemsChris Lattner2006-03-131-22/+0
| | | | llvm-svn: 26728
* Fold X+Y -> X|Y when safe. This implements:Chris Lattner2006-03-131-1/+19
| | | | | | | | Regression/CodeGen/PowerPC/and_add.ll a case that occurs with dynamic allocas of constant size. llvm-svn: 26727
* I can't convince myself that this is safe, remove the recursive call.Chris Lattner2006-03-131-18/+2
| | | | llvm-svn: 26725
* add a couple of missing foldsChris Lattner2006-03-131-0/+12
| | | | llvm-svn: 26724
* For targets with FABS/FNEG support, lower copysign to an integer load,Chris Lattner2006-03-131-2/+25
| | | | | | | | | a select and FABS/FNEG. This speeds up a trivial (aka stupid) copysign benchmark I wrote from 6.73s to 2.64s, woo. llvm-svn: 26723
* Fix a couple of bugs that broke the alpha tester buildChris Lattner2006-03-131-2/+2
| | | | llvm-svn: 26722
* Handle cracked instructions in dispatch group formation.Chris Lattner2006-03-132-15/+28
| | | | llvm-svn: 26721
* Mark instructions that are cracked by the PPC970 decoder as such.Chris Lattner2006-03-134-26/+37
| | | | llvm-svn: 26720
* Several big changes:Chris Lattner2006-03-127-213/+317
| | | | | | | | | | | 1. Use flags on the instructions in the .td file to indicate the PPC970 unit type instead of a table in the .cpp file. Much cleaner. 2. Change the hazard recognizer to build d-groups according to the actual algorithm used, not my flawed understanding of it. 3. Model "must be in the first slot" and "must be the only instr in a group" accurately. llvm-svn: 26719
* Don't advance the hazard recognizer when there are no hazards and no ↵Chris Lattner2006-03-121-25/+40
| | | | | | | | | | | instructions to be emitted. Don't add one to the latency of a completed instruction if the latency of the op is 0. llvm-svn: 26718
* Chain operands aren't real uses: they don't require the full latency of theChris Lattner2006-03-121-4/+10
| | | | | | predecessor to finish before they can start. llvm-svn: 26717
* As a pending queue data structure to keep track of instructions whoseChris Lattner2006-03-121-36/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operands have all issued, but whose results are not yet available. This allows us to compile: int G; int test(int A, int B, int* P) { return (G+A)*(B+1); } to: _test: lis r2, ha16(L_G$non_lazy_ptr) addi r4, r4, 1 lwz r2, lo16(L_G$non_lazy_ptr)(r2) lwz r2, 0(r2) add r2, r2, r3 mullw r3, r2, r4 blr instead of this, which has a stall between the lis/lwz: _test: lis r2, ha16(L_G$non_lazy_ptr) lwz r2, lo16(L_G$non_lazy_ptr)(r2) addi r4, r4, 1 lwz r2, 0(r2) add r2, r2, r3 mullw r3, r2, r4 blr llvm-svn: 26716
* rename priorityqueue -> availablequeue. When a node is scheduled, rememberChris Lattner2006-03-111-34/+37
| | | | | | which cycle it lands on. llvm-svn: 26714
* Make CurrCycle a local var instead of an instance varChris Lattner2006-03-111-19/+20
| | | | llvm-svn: 26713
* Move some methods around so that BU specific code is together, TD specific codeChris Lattner2006-03-111-236/+245
| | | | | | is together, and direction independent code is together. llvm-svn: 26712
* merge preds/chainpreds -> preds setChris Lattner2006-03-111-93/+61
| | | | | | | | | merge succs/chainsuccs -> succs set This has no functionality change, simplifies the code, and reduces the size of sunits. llvm-svn: 26711
* blr is a branch tooChris Lattner2006-03-111-0/+1
| | | | llvm-svn: 26710
* add an exampleChris Lattner2006-03-111-0/+11
| | | | llvm-svn: 26709
* add a noteChris Lattner2006-03-111-0/+4
| | | | llvm-svn: 26708
* Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominatorNate Begeman2006-03-111-142/+191
| | | | | | | | | | set construction, rather than intersecting various std::sets. This reduces the memory usage for the testcase in PR681 from 496 to 26MB of ram on my darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a 2.5GHz G5. This also enables future code sharing between Dom and PostDom now that they share near-identical implementations. llvm-svn: 26707
* Doh!Evan Cheng2006-03-111-2/+2
| | | | llvm-svn: 26705
* Added a parameter to control whether Constant::getStringValue() would chopEvan Cheng2006-03-102-5/+9
| | | | | | off the result string at the first null terminator. llvm-svn: 26704
* remove some dead codeChris Lattner2006-03-102-95/+0
| | | | llvm-svn: 26703
* scrape out bits of llvm-dbChris Lattner2006-03-101-9/+0
| | | | llvm-svn: 26701
OpenPOWER on IntegriCloud