summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Better folding getelementptr operations with mixedVikram S. Adve2002-05-191-41/+61
| | | | | | | | array and struct indexes. Update operand values in CallArgsDescriptor (a new class) when replacing constant values with immediates. llvm-svn: 2645
* cpValue2Value now needs a vector of MachineInstr to store return values.Vikram S. Adve2002-05-191-16/+20
| | | | llvm-svn: 2644
* Annotation class for MachineInstr.Vikram S. Adve2002-05-192-0/+135
| | | | llvm-svn: 2643
* Numerous bug fixes:Vikram S. Adve2002-05-192-27/+58
| | | | | | | | | | | | | | | | | | | -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint llvm-svn: 2642
* Add integer register size field.Vikram S. Adve2002-05-192-33/+48
| | | | | | | Make all sizes and offsets uint64_t instead of uint. Fixed GetIndexedOffset to handle mixed array and struct indices. llvm-svn: 2641
* Numerous bug fixes:Vikram S. Adve2002-05-198-887/+1004
| | | | | | | | | | | | | | | | | | | | | | | | -- correct sign extensions for integer casts and for shift-by-constant instructions generated for integer multiply -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect stack frame size when padding a section -- folding getelementptr operations with mixed array and struct indexes -- use uint64_t instead of uint for constant offsets in mem operands -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint llvm-svn: 2640
* Fix bug: test/Regression/CBackend/2002-05-16-NameCollide.ll by trackingChris Lattner2002-05-171-2/+24
| | | | | | | which global variables would have name collisions if they were not mangled, and use this info to mangle them iff they would collide. llvm-svn: 2639
* New C backend testcases with first testcaseChris Lattner2002-05-172-0/+27
| | | | llvm-svn: 2638
* * Make debug output conditional on #defineChris Lattner2002-05-161-13/+99
| | | | | | | | | * Add optimization to rank computation to not recursively search when unneccesary. * More agressively negate expressions to open reassociation opportunities. * Linearize (A+B)+(C+D) into ((A+B)+C)+D llvm-svn: 2637
* Add tests of redundant load eliminationChris Lattner2002-05-162-0/+53
| | | | llvm-svn: 2636
* New testcases for sub/neg reassociationChris Lattner2002-05-162-2/+2
| | | | llvm-svn: 2635
* Fix testcaseChris Lattner2002-05-161-1/+1
| | | | llvm-svn: 2634
* New testcases to ensure sub's are maximally reassociableChris Lattner2002-05-152-0/+29
| | | | llvm-svn: 2633
* Testcase to ensure trees structures are correctly linearizedChris Lattner2002-05-151-0/+11
| | | | llvm-svn: 2632
* Test to ensure sub -> neg promotion is working and why.Chris Lattner2002-05-151-0/+13
| | | | llvm-svn: 2631
* New testcaseChris Lattner2002-05-152-0/+29
| | | | llvm-svn: 2630
* * Fix bug: test/Regression/Transforms/GCSE/2002-05-14-OperandSwap.llChris Lattner2002-05-141-7/+32
| | | | | | | By making sure to consider binary expressions identical if their operands are backwards, but swappable. llvm-svn: 2629
* New testcaseChris Lattner2002-05-141-0/+18
| | | | llvm-svn: 2628
* Fix bug: test/Regression/Transforms/InstCombine/2002-05-14-SubFailure.llChris Lattner2002-05-141-1/+1
| | | | llvm-svn: 2627
* New testcase for bugChris Lattner2002-05-141-0/+14
| | | | llvm-svn: 2626
* Run another local value numbering phase after redundancy eliminationChris Lattner2002-05-141-0/+4
| | | | llvm-svn: 2625
* Avoid emitting a useless comment for a basic block with no uses (whichChris Lattner2002-05-141-3/+6
| | | | | | often happens for the entry basic block of a function) llvm-svn: 2624
* Fix bug: test/Regression/Transforms/InstCombine/2002-05-14-TouchDeletedInst.llChris Lattner2002-05-141-1/+12
| | | | | | | | | "This testcase caused instcombine to fail because it got the same instruction on it's worklist more than once (which is ok), but then deleted the instruction. Since the inst stayed on the worklist, as soon as it came back up to be processed, bad things happened, and opt asserted." llvm-svn: 2623
* New testcaseChris Lattner2002-05-141-0/+450
| | | | llvm-svn: 2622
* Fix a major source of "type unsafety", where a cast is neccesary, but canChris Lattner2002-05-141-2/+40
| | | | | | | | | be put either before or after a load. We chose to cast the value loaded instead of the pointer to load from. Fixes bug: test/Regression/Transforms/LevelRaise/2002-05-10-LoadPeephole.ll llvm-svn: 2621
* Implement elimination of loadsChris Lattner2002-05-141-18/+176
| | | | llvm-svn: 2620
* Invoke inst has side effects!Chris Lattner2002-05-141-0/+2
| | | | llvm-svn: 2619
* New fileChris Lattner2002-05-131-0/+55
| | | | llvm-svn: 2618
* Trivial cleanupsChris Lattner2002-05-131-2/+2
| | | | llvm-svn: 2617
* Add method to check to see if two _Instructions_ dominate each otherChris Lattner2002-05-133-0/+35
| | | | llvm-svn: 2616
* Initial checkin of LICM passChris Lattner2002-05-101-0/+262
| | | | llvm-svn: 2615
* expose LICM passChris Lattner2002-05-101-1/+4
| | | | llvm-svn: 2614
* Add LICM pass to compilerChris Lattner2002-05-101-0/+1
| | | | llvm-svn: 2613
* Add prototype for LICM passChris Lattner2002-05-101-0/+8
| | | | llvm-svn: 2612
* Add testcase for when there is no loop headerChris Lattner2002-05-101-0/+21
| | | | llvm-svn: 2611
* A basic test that LICM is workingChris Lattner2002-05-101-0/+17
| | | | llvm-svn: 2610
* Run LICM testsChris Lattner2002-05-101-1/+1
| | | | llvm-svn: 2609
* run LICM testsChris Lattner2002-05-101-0/+10
| | | | llvm-svn: 2608
* Make sure to call the derived visit versions from the ranged iterator.Chris Lattner2002-05-101-1/+1
| | | | llvm-svn: 2607
* We actually need this code for the release build to prevent link errors,Chris Lattner2002-05-101-6/+1
| | | | | | un#ifdef it. llvm-svn: 2606
* Add explicit abort so optimized build knows that the function does not returnChris Lattner2002-05-101-0/+1
| | | | llvm-svn: 2605
* Add an explicit abort so that the optimized build knows the function doesChris Lattner2002-05-101-0/+1
| | | | | | not return. llvm-svn: 2604
* * Allow a profile'd code build to be done with a simple 'make ↵Chris Lattner2002-05-102-14/+22
| | | | | | | | | | ENABLE_PROFILING=1' * Only build tags for include, lib, and tools, not tests * Turn on verbose output from bison to get information about shift/reduce conficts (why isn't this the default??) llvm-svn: 2603
* Expose the lowerallocs passChris Lattner2002-05-101-4/+15
| | | | llvm-svn: 2602
* Add support for printing out statistics information when -stats is added toChris Lattner2002-05-1017-17/+109
| | | | | | the command line llvm-svn: 2601
* Fix some bugs, straighten stuff out, more work needs to be done.Chris Lattner2002-05-101-19/+33
| | | | llvm-svn: 2600
* Initial checkin of Statistic classChris Lattner2002-05-102-0/+138
| | | | llvm-svn: 2599
* Initial checkin of Statistic class.Chris Lattner2002-05-103-0/+93
| | | | llvm-svn: 2598
* * Add support for the -stats command line option to report how much is changedChris Lattner2002-05-101-2/+24
| | | | | | | | * Make cast-of-self-ty DCE the dead cast instruction immediately instead of waiting for it to be DCE'd by another sweep over the function. This speeds this up noticably. llvm-svn: 2597
* New testcaseChris Lattner2002-05-101-0/+13
| | | | llvm-svn: 2596
OpenPOWER on IntegriCloud