aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove the use of llvm.dbg.declare.Jim Laskey2006-03-141-6/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26744 91177308-0d34-0410-b5e6-96231b3b80d8
* PPC LSR pass should use target lowering hooks.Evan Cheng2006-03-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26743 91177308-0d34-0410-b5e6-96231b3b80d8
* Added getTargetLowering() to TargetMachine. Refactored targets to support this.Evan Cheng2006-03-1327-66/+97
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26742 91177308-0d34-0410-b5e6-96231b3b80d8
* UpdateEvan Cheng2006-03-131-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26741 91177308-0d34-0410-b5e6-96231b3b80d8
* Add LSR hooks.Evan Cheng2006-03-133-5/+58
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26740 91177308-0d34-0410-b5e6-96231b3b80d8
* Added getTargetLowering() - returns DAG lowering info.Evan Cheng2006-03-131-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26739 91177308-0d34-0410-b5e6-96231b3b80d8
* Added target lowering hooks which LSR consults to make more intelligentEvan Cheng2006-03-132-27/+41
| | | | | | | transformation decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26738 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle builtins that directly correspond to GCC builtins.Chris Lattner2006-03-132-4/+50
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26737 91177308-0d34-0410-b5e6-96231b3b80d8
* emit a mapping from LLVM intrinsic -> GCC builtins.Chris Lattner2006-03-133-8/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26736 91177308-0d34-0410-b5e6-96231b3b80d8
* Verify that packed type operands have the right size and base type.Chris Lattner2006-03-132-6/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26735 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a first ppc altivec intrinsic. Add packed type support.Chris Lattner2006-03-131-0/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26734 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26733 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimizing to calloc() to malloc() + memset() can be bad on some platforms.Evan Cheng2006-03-131-33/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26732 91177308-0d34-0410-b5e6-96231b3b80d8
* make sure dead token factor nodes are removed by the dag combiner.Chris Lattner2006-03-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26731 91177308-0d34-0410-b5e6-96231b3b80d8
* Bring makefile back into compliance with standard by usingReid Spencer2006-03-131-1/+1
| | | | | | | $(Echo) instead of @echo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26730 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle the removal of the debug chain.Jim Laskey2006-03-139-67/+117
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26729 91177308-0d34-0410-b5e6-96231b3b80d8
* remove two implemented itemsChris Lattner2006-03-131-22/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26728 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26727 91177308-0d34-0410-b5e6-96231b3b80d8
* new testcaseChris Lattner2006-03-131-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26726 91177308-0d34-0410-b5e6-96231b3b80d8
* I can't convince myself that this is safe, remove the recursive call.Chris Lattner2006-03-131-18/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26725 91177308-0d34-0410-b5e6-96231b3b80d8
* add a couple of missing foldsChris Lattner2006-03-131-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26724 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26723 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a couple of bugs that broke the alpha tester buildChris Lattner2006-03-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26722 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle cracked instructions in dispatch group formation.Chris Lattner2006-03-132-15/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26721 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark instructions that are cracked by the PPC970 decoder as such.Chris Lattner2006-03-134-26/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26720 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26719 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26718 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26717 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26716 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark llvm.stacksave as only reading memory, this fixesChris Lattner2006-03-121-1/+1
| | | | | | | Regression/Transforms/InstCombine/stacksaverestore.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26715 91177308-0d34-0410-b5e6-96231b3b80d8
* rename priorityqueue -> availablequeue. When a node is scheduled, rememberChris Lattner2006-03-111-34/+37
| | | | | | | which cycle it lands on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26714 91177308-0d34-0410-b5e6-96231b3b80d8
* Make CurrCycle a local var instead of an instance varChris Lattner2006-03-111-19/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26713 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26712 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26711 91177308-0d34-0410-b5e6-96231b3b80d8
* blr is a branch tooChris Lattner2006-03-111-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26710 91177308-0d34-0410-b5e6-96231b3b80d8
* add an exampleChris Lattner2006-03-111-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26709 91177308-0d34-0410-b5e6-96231b3b80d8
* add a noteChris Lattner2006-03-111-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26708 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominatorNate Begeman2006-03-112-174/+240
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26707 91177308-0d34-0410-b5e6-96231b3b80d8
* fix pasto in generate assertion msgChris Lattner2006-03-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26706 91177308-0d34-0410-b5e6-96231b3b80d8
* Doh!Evan Cheng2006-03-111-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26705 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a parameter to control whether Constant::getStringValue() would chopEvan Cheng2006-03-103-6/+12
| | | | | | | off the result string at the first null terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26704 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some dead codeChris Lattner2006-03-102-95/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26703 91177308-0d34-0410-b5e6-96231b3b80d8
* remove ShouldEmitDebugFunctions, a hack to support llvm-db via the jitChris Lattner2006-03-101-5/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26702 91177308-0d34-0410-b5e6-96231b3b80d8
* scrape out bits of llvm-dbChris Lattner2006-03-101-9/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26701 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea.Chris Lattner2006-03-102-937/+6
| | | | | | | Perhaps llvm-db will turn into a read debugger someday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26700 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify this testcaseChris Lattner2006-03-101-14/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26699 91177308-0d34-0410-b5e6-96231b3b80d8
* reorder these to make it work with static librariesChris Lattner2006-03-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26698 91177308-0d34-0410-b5e6-96231b3b80d8
* teach the JIT to encode vector registersChris Lattner2006-03-101-32/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26697 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another broken intrinsic.Chris Lattner2006-03-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26696 91177308-0d34-0410-b5e6-96231b3b80d8
* weak globals on darwin require an extra load, breaking this testChris Lattner2006-03-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26695 91177308-0d34-0410-b5e6-96231b3b80d8