summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* dbg.stoppoint returns a value, don't forget to init itChris Lattner2005-12-031-0/+1
| | | | llvm-svn: 24583
* bah, must generate all resultsAndrew Lenharth2005-12-021-2/+8
| | | | llvm-svn: 24574
* cycle counter fixAndrew Lenharth2005-12-021-0/+6
| | | | llvm-svn: 24573
* Don't remove two operand, two result nodes from the binary ops map. TheseChris Lattner2005-12-011-36/+39
| | | | | | | | should come from the arbitrary ops map. This fixes Regression/CodeGen/PowerPC/2005-12-01-Crash.ll llvm-svn: 24571
* Promote line and column number information for our friendly 64-bit targets.Chris Lattner2005-12-011-3/+10
| | | | llvm-svn: 24568
* This is a bugfix for SelectNodeTo. In certain situations, we could beChris Lattner2005-12-011-0/+110
| | | | | | | | | | selecting a node and use a mix of getTargetNode() and SelectNodeTo. Because SelectNodeTo didn't check the CSE maps for a preexisting node and didn't insert its result into the CSE maps, we would sometimes miss a CSE opportunity. This is extremely rare, but worth fixing for completeness. llvm-svn: 24565
* Support multiple ValueTypes per RegisterClass, needed for upcoming vectorNate Begeman2005-12-011-1/+1
| | | | | | work. This change has no effect on generated code. llvm-svn: 24563
* Make SelectNodeTo return NChris Lattner2005-11-301-35/+49
| | | | llvm-svn: 24548
* CALLSEQ_START/END nodes don't get memoized, do not add them in whenChris Lattner2005-11-301-0/+4
| | | | | | replaceAllUses'ing. llvm-svn: 24539
* At long last, you can say that f32 isn't supported for setccAndrew Lenharth2005-11-301-1/+28
| | | | llvm-svn: 24537
* First chunk of actually generating vector code for packed types. TheseNate Begeman2005-11-301-2/+12
| | | | | | | | | | | | | | | | | | | | | | | 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 } llvm-svn: 24534
* add support for custom lowering SINT_TO_FPAndrew Lenharth2005-11-301-0/+13
| | | | llvm-svn: 24531
* Fix a problem with llvm-ranlib that (on some platforms) caused the archiveReid Spencer2005-11-301-0/+30
| | | | | | | | | | 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 llvm-svn: 24527
* Fixed a bug introduced by my last commit: TargetGlobalValues should key onEvan Cheng2005-11-301-7/+13
| | | | | | GlobalValue * and index pair. Update getGlobalAddress() for symmetry. llvm-svn: 24524
* Added an index field to GlobalAddressSDNode so it can represent X+12, etc.Evan Cheng2005-11-303-3/+23
| | | | llvm-svn: 24523
* Add support for a new STRING and LOCATION node for line number support, patchChris Lattner2005-11-294-2/+113
| | | | | | contributed by Daniel Berlin, with a few cleanups here and there by me. llvm-svn: 24515
* Add the majority of the vector machien value types we expect to support,Nate Begeman2005-11-292-2/+8
| | | | | | | and make a few changes to the legalization machinery to support more than 16 types. llvm-svn: 24511
* Check in code to scalarize arbitrarily wide packed types for some simpleNate Begeman2005-11-223-5/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 24484
* Rather than attempting to legalize 1 x float, make sure the SD ISel neverNate Begeman2005-11-222-48/+24
| | | | | | | | | | | generates it. Make MVT::Vector expand-only, and remove the code in Legalize that attempts to legalize it. The plan for supporting N x Type is to continually epxand it in ExpandOp until it gets down to 2 x Type, where it will be scalarized into a pair of scalars. llvm-svn: 24482
* I think I know what you meant here, but just to be safe I'll let youDuraid Madina2005-11-211-1/+1
| | | | | | | | do it. :) <_sabre_> excuses excuses llvm-svn: 24471
* Allow target to customize directive used to switch to arbitrary section in ↵Chris Lattner2005-11-211-1/+28
| | | | | | | | SwitchSection, add generic constant pool emitter llvm-svn: 24464
* increment the function number in SetupMachineFunctionChris Lattner2005-11-211-0/+1
| | | | llvm-svn: 24461
* Adjust to capitalized asmprinter method namesChris Lattner2005-11-211-18/+18
| | | | llvm-svn: 24457
* Add section switching to common code generator code. Add a couple ofChris Lattner2005-11-213-2/+23
| | | | | | asserts. llvm-svn: 24445
* Legalize MERGE_VALUES, expand READCYCLECOUNTER correctly, so it doesn'tChris Lattner2005-11-201-8/+13
| | | | | | break control dependence. llvm-svn: 24437
* The first patch of X86 support for read cycle counterAndrew Lenharth2005-11-201-0/+12
| | | | llvm-svn: 24429
* more progress towards bug 291 being finished. Patch by Owen Anderson,Chris Lattner2005-11-201-12/+17
| | | | | | HAVE_GV case fixed up by me. llvm-svn: 24428
* Unbreak codegen of bools. This should fix the llc/jit/llc-beta failuresChris Lattner2005-11-191-1/+1
| | | | | | from last night. llvm-svn: 24427
* Improve Selection DAG printer portability. Patch by Owen Anderson!Chris Lattner2005-11-191-4/+6
| | | | llvm-svn: 24425
* Teach the graph viewer to handle register operands that are zero.Chris Lattner2005-11-191-1/+1
| | | | llvm-svn: 24421
* Silence a bogus warningChris Lattner2005-11-191-3/+2
| | | | llvm-svn: 24420
* Add some method variants, patch by Evan ChengChris Lattner2005-11-191-15/+41
| | | | llvm-svn: 24418
* Teach LLVM how to scalarize packed types. Currently, this only works onNate Begeman2005-11-194-33/+111
| | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 24416
* Split out the shift code from visitBinary.Nate Begeman2005-11-181-7/+14
| | | | llvm-svn: 24412
* Allow targets to custom legalize leaf nodes like GlobalAddress.Chris Lattner2005-11-171-1/+13
| | | | llvm-svn: 24387
* Teach legalize about targetglobaladdressChris Lattner2005-11-171-0/+1
| | | | llvm-svn: 24385
* when debugging lower dbg intrinsics to callsChris Lattner2005-11-161-0/+22
| | | | llvm-svn: 24377
* Remove extraneous parents around constants when using a constant expr cast.Chris Lattner2005-11-151-2/+0
| | | | llvm-svn: 24357
* Teach emitAlignment to handle explicit alignment requests by globals.Chris Lattner2005-11-141-1/+3
| | | | llvm-svn: 24354
* Fix operator precedence bug caught by VC++.Jeff Cohen2005-11-121-2/+2
| | | | llvm-svn: 24318
* added a chain outputAndrew Lenharth2005-11-111-2/+10
| | | | llvm-svn: 24306
* continued readcyclecounter supportAndrew Lenharth2005-11-114-0/+15
| | | | llvm-svn: 24300
* nuke blank lineChris Lattner2005-11-101-1/+0
| | | | llvm-svn: 24278
* Get rid of casts by #including the right headerChris Lattner2005-11-101-6/+6
| | | | llvm-svn: 24275
* Compile C strings to:Chris Lattner2005-11-101-0/+1
| | | | | | | | | | | | | l1__2E_str_1: ; '.str_1' .asciz "foo" not: .align 0 l1__2E_str_1: ; '.str_1' .asciz "foo" llvm-svn: 24273
* add support for .asciz, and enable it by default. If your target ↵Chris Lattner2005-11-101-5/+13
| | | | | | | | | | | | | | | | assemblerdoesn't support .asciz, just set AscizDirective to null in your asmprinter. This compiles C strings to: l1__2E_str_1: ; '.str_1' .asciz "foo" instead of: l1__2E_str_1: ; '.str_1' .ascii "foo\000" llvm-svn: 24272
* Switch the allnodes list from a vector of pointers to an ilist of nodes.This ↵Chris Lattner2005-11-094-46/+37
| | | | | | | | eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding nodes to the graph. llvm-svn: 24263
* Refactor intrinsic lowering stuff out of visitCallChris Lattner2005-11-091-98/+107
| | | | llvm-svn: 24261
* Handle the trivial (but common) two-op case more efficientlyChris Lattner2005-11-091-11/+18
| | | | llvm-svn: 24259
* Nuke noop copies.Chris Lattner2005-11-091-4/+11
| | | | llvm-svn: 24258
OpenPOWER on IntegriCloud