| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Mark instructions that are cracked by the PPC970 decoder as such. | Chris Lattner | 2006-03-13 | 4 | -26/+37 | |
| | | | | | llvm-svn: 26720 | |||||
| * | Several big changes: | Chris Lattner | 2006-03-12 | 7 | -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 Lattner | 2006-03-12 | 1 | -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 the | Chris Lattner | 2006-03-12 | 1 | -4/+10 | |
| | | | | | | | predecessor to finish before they can start. llvm-svn: 26717 | |||||
| * | As a pending queue data structure to keep track of instructions whose | Chris Lattner | 2006-03-12 | 1 | -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 | |||||
| * | Mark llvm.stacksave as only reading memory, this fixes | Chris Lattner | 2006-03-12 | 1 | -1/+1 | |
| | | | | | | | Regression/Transforms/InstCombine/stacksaverestore.ll llvm-svn: 26715 | |||||
| * | rename priorityqueue -> availablequeue. When a node is scheduled, remember | Chris Lattner | 2006-03-11 | 1 | -34/+37 | |
| | | | | | | | which cycle it lands on. llvm-svn: 26714 | |||||
| * | Make CurrCycle a local var instead of an instance var | Chris Lattner | 2006-03-11 | 1 | -19/+20 | |
| | | | | | llvm-svn: 26713 | |||||
| * | Move some methods around so that BU specific code is together, TD specific code | Chris Lattner | 2006-03-11 | 1 | -236/+245 | |
| | | | | | | | is together, and direction independent code is together. llvm-svn: 26712 | |||||
| * | merge preds/chainpreds -> preds set | Chris Lattner | 2006-03-11 | 1 | -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 too | Chris Lattner | 2006-03-11 | 1 | -0/+1 | |
| | | | | | llvm-svn: 26710 | |||||
| * | add an example | Chris Lattner | 2006-03-11 | 1 | -0/+11 | |
| | | | | | llvm-svn: 26709 | |||||
| * | add a note | Chris Lattner | 2006-03-11 | 1 | -0/+4 | |
| | | | | | llvm-svn: 26708 | |||||
| * | Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator | Nate Begeman | 2006-03-11 | 2 | -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. llvm-svn: 26707 | |||||
| * | fix pasto in generate assertion msg | Chris Lattner | 2006-03-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 26706 | |||||
| * | Doh! | Evan Cheng | 2006-03-11 | 1 | -2/+2 | |
| | | | | | llvm-svn: 26705 | |||||
| * | Added a parameter to control whether Constant::getStringValue() would chop | Evan Cheng | 2006-03-10 | 3 | -6/+12 | |
| | | | | | | | off the result string at the first null terminator. llvm-svn: 26704 | |||||
| * | remove some dead code | Chris Lattner | 2006-03-10 | 2 | -95/+0 | |
| | | | | | llvm-svn: 26703 | |||||
| * | remove ShouldEmitDebugFunctions, a hack to support llvm-db via the jit | Chris Lattner | 2006-03-10 | 1 | -5/+1 | |
| | | | | | llvm-svn: 26702 | |||||
| * | scrape out bits of llvm-db | Chris Lattner | 2006-03-10 | 1 | -9/+0 | |
| | | | | | llvm-svn: 26701 | |||||
| * | Remove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea. | Chris Lattner | 2006-03-10 | 2 | -937/+6 | |
| | | | | | | | Perhaps llvm-db will turn into a read debugger someday. llvm-svn: 26700 | |||||
| * | Simplify this testcase | Chris Lattner | 2006-03-10 | 1 | -14/+2 | |
| | | | | | llvm-svn: 26699 | |||||
| * | reorder these to make it work with static libraries | Chris Lattner | 2006-03-10 | 1 | -2/+2 | |
| | | | | | llvm-svn: 26698 | |||||
| * | teach the JIT to encode vector registers | Chris Lattner | 2006-03-10 | 1 | -32/+32 | |
| | | | | | llvm-svn: 26697 | |||||
| * | Fix another broken intrinsic. | Chris Lattner | 2006-03-10 | 1 | -1/+1 | |
| | | | | | llvm-svn: 26696 | |||||
| * | weak globals on darwin require an extra load, breaking this test | Chris Lattner | 2006-03-10 | 1 | -1/+1 | |
| | | | | | llvm-svn: 26695 | |||||
| * | Fix incorrect definitions of these intrinsics, which broke a bunch of | Chris Lattner | 2006-03-10 | 1 | -2/+4 | |
| | | | | | | | stuff last night. llvm-svn: 26694 | |||||
| * | Move simple-selector-specific types to the simple selector. | Chris Lattner | 2006-03-10 | 2 | -201/+202 | |
| | | | | | llvm-svn: 26693 | |||||
| * | Simplify the interface to the schedulers, to not pass the selected heuristicin. | Chris Lattner | 2006-03-10 | 2 | -9/+28 | |
| | | | | | llvm-svn: 26692 | |||||
| * | Simplify the interface to the schedulers, to not pass the selected heuristic | Chris Lattner | 2006-03-10 | 1 | -14/+4 | |
| | | | | | | | in. llvm-svn: 26691 | |||||
| * | Move some simple-sched-specific instance vars to the simple scheduler. | Chris Lattner | 2006-03-10 | 4 | -29/+32 | |
| | | | | | llvm-svn: 26690 | |||||
| * | prune #includes | Chris Lattner | 2006-03-10 | 1 | -5/+0 | |
| | | | | | llvm-svn: 26689 | |||||
| * | move some simple scheduler methods into the simple scheduler | Chris Lattner | 2006-03-10 | 3 | -264/+266 | |
| | | | | | llvm-svn: 26688 | |||||
| * | Make EmitNode take a SDNode instead of a NodeInfo* | Chris Lattner | 2006-03-10 | 3 | -13/+7 | |
| | | | | | llvm-svn: 26687 | |||||
| * | Move the VRBase field from NodeInfo to being a separate, explicit, map. | Chris Lattner | 2006-03-10 | 2 | -13/+27 | |
| | | | | | llvm-svn: 26686 | |||||
| * | Store VRBase in a map, not in NodeInfo. | Chris Lattner | 2006-03-10 | 1 | -12/+5 | |
| | | | | | llvm-svn: 26685 | |||||
| * | no need to build groups anymore | Chris Lattner | 2006-03-10 | 1 | -2/+0 | |
| | | | | | llvm-svn: 26684 | |||||
| * | Create SUnits directly from the SelectionDAG. | Chris Lattner | 2006-03-10 | 1 | -87/+87 | |
| | | | | | llvm-svn: 26683 | |||||
| * | Push PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy | Chris Lattner | 2006-03-10 | 3 | -4/+10 | |
| | | | | | llvm-svn: 26682 | |||||
| * | make some methods protected instead of private | Chris Lattner | 2006-03-10 | 1 | -4/+4 | |
| | | | | | llvm-svn: 26681 | |||||
| * | Teach the latency scheduler some new tricks. In particular, to break ties, | Chris Lattner | 2006-03-10 | 1 | -9/+156 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | keep track of a sense of "mobility", i.e. how many other nodes scheduling one node will free up. For something like this: float testadd(float *X, float *Y, float *Z, float *W, float *V) { return (*X+*Y)*(*Z+*W)+*V; } For example, this makes us schedule *X then *Y, not *X then *Z. The former allows us to issue the add, the later only lets us issue other loads. This turns the above code from this: _testadd: lfs f0, 0(r3) lfs f1, 0(r6) lfs f2, 0(r4) lfs f3, 0(r5) fadds f0, f0, f2 fadds f1, f3, f1 lfs f2, 0(r7) fmadds f1, f0, f1, f2 blr into this: _testadd: lfs f0, 0(r6) lfs f1, 0(r5) fadds f0, f1, f0 lfs f1, 0(r4) lfs f2, 0(r3) fadds f1, f2, f1 lfs f2, 0(r7) fmadds f1, f1, f0, f2 blr llvm-svn: 26680 | |||||
| * | Put intrinsics.gen in its proper place. | Jeff Cohen | 2006-03-10 | 1 | -5/+7 | |
| | | | | | llvm-svn: 26679 | |||||
| * | add an aggregate method for reinserting scheduled nodes, add a callback for | Chris Lattner | 2006-03-10 | 1 | -8/+23 | |
| | | | | | | | priority impls that want to be notified when a node is scheduled llvm-svn: 26678 | |||||
| * | Fix an incorrect intrinsic description | Chris Lattner | 2006-03-10 | 1 | -2/+3 | |
| | | | | | llvm-svn: 26677 | |||||
| * | Fix VC++ build breakage. | Jeff Cohen | 2006-03-10 | 3 | -3/+34 | |
| | | | | | llvm-svn: 26676 | |||||
| * | Adding an intrinsic is simpler still. | Chris Lattner | 2006-03-09 | 1 | -4/+0 | |
| | | | | | llvm-svn: 26674 | |||||
| * | use autogenerated side-effect information | Chris Lattner | 2006-03-09 | 1 | -27/+5 | |
| | | | | | llvm-svn: 26673 | |||||
| * | generate side-effect info | Chris Lattner | 2006-03-09 | 2 | -0/+27 | |
| | | | | | llvm-svn: 26672 | |||||
| * | Simpler still | Chris Lattner | 2006-03-09 | 1 | -4/+0 | |
| | | | | | llvm-svn: 26671 | |||||
| * | Use autogenerated mod/ref info for intrinsics. | Chris Lattner | 2006-03-09 | 1 | -22/+26 | |
| | | | | | llvm-svn: 26670 | |||||

