aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Yet another variant of getTargetNode().Evan Cheng2005-12-171-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24758 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix VC++ level 4 warnings. Because a base class has declared these private, ↵Jeff Cohen2005-12-173-0/+8
| | | | | | VC++ complains it cannot automatically generate this methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24751 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix VC++ level 4 warnings.Jeff Cohen2005-12-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24750 91177308-0d34-0410-b5e6-96231b3b80d8
* Added source file/line correspondence for dwarf (PowerPC only at this point.)Jim Laskey2005-12-163-0/+96
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust the constructor to the Linker class to take an argument that namesReid Spencer2005-12-131-1/+5
| | | | | | | | | the module being constructed. This is used to correctly name the module. Previously the name of the linker tool was used which produces confusing output when the module identifier is used in an error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24699 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a couple more fields, move ctor init list to .cpp file, add supportChris Lattner2005-12-131-26/+26
| | | | | | | for emitting the ctor/dtor list for common targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24694 91177308-0d34-0410-b5e6-96231b3b80d8
* Added new getNode and getTargetNode variants for X86 stores.Evan Cheng2005-12-101-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24653 91177308-0d34-0410-b5e6-96231b3b80d8
* Added patterns for ADD8rm, etc. These fold load operands. e.g. addb 4(%esp), %alEvan Cheng2005-12-091-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24648 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support for ComplexPattern. These are patterns that require C++ patternEvan Cheng2005-12-081-10/+49
| | | | | | | | matching code that is not currently auto-generated by tblgen, e.g. X86 addressing mode. Selection routines for complex patterns can return multiple operands, e.g. X86 addressing mode returns 4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24634 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a now-dead map, patch by Saem Ghani, thanks!Chris Lattner2005-12-071-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24629 91177308-0d34-0410-b5e6-96231b3b80d8
* Added comment for removing assertSumant Kowshik2005-12-061-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24623 91177308-0d34-0410-b5e6-96231b3b80d8
* Handling of zero length last fields in struct used for growing it arbitrarilySumant Kowshik2005-12-061-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24620 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement external storage for post-order iteration, implementing PR267Chris Lattner2005-12-061-10/+84
| | | | | | | Patch by Saem Ghani, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24617 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the SelectionDAG ISel how to turn ConstantPacked values intoNate Begeman2005-12-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to generate altivec code such as the following, which adds a vector constantto a packed float. LCPI1_0: <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 > .space 4 .space 4 .space 4 .long 1065353216 ; float 1 .text .align 4 .globl _foo _foo: lis r2, ha16(LCPI1_0) la r2, lo16(LCPI1_0)(r2) li r4, 0 lvx v0, r4, r2 lvx v1, r4, r3 vaddfp v0, v1, v0 stvx v0, r4, r3 blr For the llvm code: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 > store <4 x float> %tmp2, <4 x float> *%a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a flag to Module::getGlobalVariable to allow it to return vars withChris Lattner2005-12-051-6/+7
| | | | | | | | | internal linkage. Patch provided by Evan Jones, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24604 91177308-0d34-0410-b5e6-96231b3b80d8
* Support multiple ValueTypes per RegisterClass, needed for upcoming vectorNate Begeman2005-12-011-7/+13
| | | | | | | work. This change has no effect on generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24563 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach tblgen to accept register source operands in patterns, e.g.Evan Cheng2005-12-011-0/+14
| | | | | | | | | | | | def SHL8rCL : I<0xD2, MRM4r, (ops R8 :$dst, R8 :$src), "shl{b} {%cl, $dst|$dst, %CL}", [(set R8:$dst, (shl R8:$src, CL))]>, Imp<[CL],[]>; This generates a CopyToReg operand and added its 2nd result to the shl as a flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24557 91177308-0d34-0410-b5e6-96231b3b80d8
* Make SelectNodeTo return NChris Lattner2005-11-301-28/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24548 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a simple clear() methodChris Lattner2005-11-301-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24543 91177308-0d34-0410-b5e6-96231b3b80d8
* First chunk of actually generating vector code for packed types. TheseNate Begeman2005-11-301-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | changes allow us to generate the following code: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr for this llvm: void %foo(<4 x float>* %a) { entry: %tmp1 = load <4 x float>* %a %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float>* %a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24534 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanupChris Lattner2005-11-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24528 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a problem with llvm-ranlib that (on some platforms) caused the archiveReid Spencer2005-11-301-0/+3
| | | | | | | | | | | file to become corrupted due to interactions between mmap'd memory segments and file descriptors closing. The problem is completely avoiding by using a third temporary file. Patch provided by Evan Jones git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24527 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed a bug introduced by my last commit: TargetGlobalValues should key onEvan Cheng2005-11-301-4/+5
| | | | | | | GlobalValue * and index pair. Update getGlobalAddress() for symmetry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24524 91177308-0d34-0410-b5e6-96231b3b80d8
* Added an index field to GlobalAddressSDNode so it can represent X+12, etc.Evan Cheng2005-11-302-2/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24523 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for a new STRING and LOCATION node for line number support, patchChris Lattner2005-11-292-1/+24
| | | | | | | contributed by Daniel Berlin, with a few cleanups here and there by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24512 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the majority of the vector machien value types we expect to support,Nate Begeman2005-11-292-5/+23
| | | | | | | | and make a few changes to the legalization machinery to support more than 16 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24511 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR670 and test/Regression/Transforms/Mem2Reg/2005-11-28-Crash.llChris Lattner2005-11-291-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24508 91177308-0d34-0410-b5e6-96231b3b80d8
* Added documented rsprofiler interface. Also remove new profiler passes, theAndrew Lenharth2005-11-283-4/+30
| | | | | | | old ones have been updated to implement the interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24499 91177308-0d34-0410-b5e6-96231b3b80d8
* Random sampling (aka Arnold and Ryder) profiling. This is still ↵Andrew Lenharth2005-11-282-0/+12
| | | | | | | | | | | | | | | | | | preliminary, but it works on spec on x86 and alpha. The idea is to allow profiling passes to remember what profiling they inserted, then a random sampling framework is inserted which consists of duplicated basic blocks (without profiling), such that at each backedge in the program and entry into every function, the framework chooses whether to use the instrumented code or the instrumentation free code. The goal of such a framework is to make it reasonably cheap to do random sampling of very expensive profiling products (such as load-value profiling). The code is organized into 3 parts (2 passes) 1) a linked set of profiling passes, which implement an analysis group (linked, like alias analysis are). These insert profiling into the program, and remember what they inserted, so that at a later time they can be queried about any instruction. 2) a pass that handles inserting the random sampling framework. This also has options to control how random samples are choosen. Currently implemented are Global counters, register allocated global counters, and read cycle counter (see? there was a reason for it). The profiling passes are almost identical to the existing ones (block, function, and null profiling is supported right now), and they are valid passes without the sampling framework (hence the existing passes can be unified with the new ones, not done yet). Some things are a bit ugly still, but that should be fixed up soon enough. Other todo? making the counter values not "magic 2^16 -1" values, but dynamically choosable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24493 91177308-0d34-0410-b5e6-96231b3b80d8
* Reg2Mem is something a pass may depend on, so allow thatAndrew Lenharth2005-11-221-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24488 91177308-0d34-0410-b5e6-96231b3b80d8
* Check in code to scalarize arbitrarily wide packed types for some simpleNate Begeman2005-11-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vector operations (load, add, sub, mul). This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } on ppc as: _foo: lfs f0, 12(r3) lfs f1, 8(r3) lfs f2, 4(r3) lfs f3, 0(r3) fadds f0, f0, f0 fadds f1, f1, f1 fadds f2, f2, f2 fadds f3, f3, f3 stfs f0, 12(r3) stfs f1, 8(r3) stfs f2, 4(r3) stfs f3, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new flagChris Lattner2005-11-211-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24480 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some more directivesChris Lattner2005-11-211-1/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24474 91177308-0d34-0410-b5e6-96231b3b80d8
* add two more config directives, add method for printing constant poolChris Lattner2005-11-211-1/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24463 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the AsmPrinter keep track of the notion of a function number.Chris Lattner2005-11-211-2/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24460 91177308-0d34-0410-b5e6-96231b3b80d8
* Capitalize methods for better consistencyChris Lattner2005-11-211-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24455 91177308-0d34-0410-b5e6-96231b3b80d8
* Add section switching to to common AsmPrinter code.Chris Lattner2005-11-211-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24444 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new option.Chris Lattner2005-11-211-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24439 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new node typeChris Lattner2005-11-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24436 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two new construction methods, patch by Evan ChengChris Lattner2005-11-191-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24417 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach LLVM how to scalarize packed types. Currently, this only works onNate Begeman2005-11-192-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | packed types with an element count of 1, although more generic support is coming. This allows LLVM to turn the following code: void %foo(<1 x float> * %a) { entry: %tmp1 = load <1 x float> * %a; %tmp2 = add <1 x float> %tmp1, %tmp1 store <1 x float> %tmp2, <1 x float> *%a ret void } Into: _foo: lfs f0, 0(r3) fadds f0, f0, f0 stfs f0, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the dominates method to return true if the two nodes are the same. AddChris Lattner2005-11-181-4/+12
| | | | | | | a new properlyDominates method to do what the old one did. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24407 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the type lowering code about turning packed types into vector types.Nate Begeman2005-11-172-5/+10
| | | | | | | | Next step: generating vector dag nodes, and legalizing them into scalar code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24404 91177308-0d34-0410-b5e6-96231b3b80d8
* add a flagChris Lattner2005-11-161-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24375 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach emitAlignment to handle explicit alignment requests by globals.Chris Lattner2005-11-141-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24354 91177308-0d34-0410-b5e6-96231b3b80d8
* add malloc_zone_statistics, remove mstatsChris Lattner2005-11-141-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24350 91177308-0d34-0410-b5e6-96231b3b80d8
* regenerateChris Lattner2005-11-141-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24348 91177308-0d34-0410-b5e6-96231b3b80d8
* Shrink derived types by 8 bytes each by not having to have 2 vtables pointersChris Lattner2005-11-132-2/+5
| | | | | | | and other MI overhead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24344 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor some code, moving methods and data around. This gets rid of someChris Lattner2005-11-132-51/+34
| | | | | | | virtual methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24342 91177308-0d34-0410-b5e6-96231b3b80d8
* Shrink the Type class from 32 to 28 bytes on Darwin (which has silly 32-bitChris Lattner2005-11-121-1/+1
| | | | | | | bools). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24326 91177308-0d34-0410-b5e6-96231b3b80d8