summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use PrivateGlobalPrefix for basic block labelsChris Lattner2005-11-211-2/+4
| | | | llvm-svn: 24452
* Use PrivateGlobalPrefix for basic blocksChris Lattner2005-11-211-6/+6
| | | | llvm-svn: 24451
* Switch to the new shared SwitchSectionChris Lattner2005-11-211-26/+6
| | | | llvm-svn: 24450
* Start using SwitchSection, allowing globals and functions to be emittedChris Lattner2005-11-211-39/+7
| | | | | | to specific sections. Delete some dead functions copied from the X86 backend. llvm-svn: 24449
* convert the rest of this over to use SwitchSectionChris Lattner2005-11-213-7/+4
| | | | llvm-svn: 24448
* Start using the AsmPrinter shared SwitchSection code. This allows the X86Chris Lattner2005-11-212-18/+3
| | | | | | backend to implement global variables in sections. llvm-svn: 24447
* This is now implemented in common codegen codeChris Lattner2005-11-211-20/+0
| | | | llvm-svn: 24446
* Add section switching to common code generator code. Add a couple ofChris Lattner2005-11-213-2/+23
| | | | | | asserts. llvm-svn: 24445
* Rename SwitchSection -> switchSection to avoid conflicting with a futureChris Lattner2005-11-214-22/+22
| | | | | | change. llvm-svn: 24443
* Start using PrivateGlobalPrefix correctlyChris Lattner2005-11-212-6/+8
| | | | llvm-svn: 24442
* set PrivateGlobalPrefix on darwin, use it when printing out CP referencesChris Lattner2005-11-211-7/+9
| | | | llvm-svn: 24441
* Naturally align doubles in the constant pool, set PrivateGlobalPrefix onChris Lattner2005-11-213-8/+17
| | | | | | | | | darwin, use it when printing the constant pool indices so the labels are appropriately private, emit cp entries to .const instead of .data on darwin and only emit a single .section for the constant pool, not one for each entry. llvm-svn: 24440
* Lower READCYCLECOUNTER correctly, preserving the chain resultChris Lattner2005-11-201-4/+8
| | | | llvm-svn: 24438
* Legalize MERGE_VALUES, expand READCYCLECOUNTER correctly, so it doesn'tChris Lattner2005-11-201-8/+13
| | | | | | break control dependence. llvm-svn: 24437
* encode rdtsc correctlyChris Lattner2005-11-201-4/+7
| | | | llvm-svn: 24435
* use chain operands to ensure the copies don't wander from the rdtsc instruction.Chris Lattner2005-11-201-3/+9
| | | | llvm-svn: 24434
* The second patch of X86 support for read cycle counter.Andrew Lenharth2005-11-204-0/+20
| | | | llvm-svn: 24430
* 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 x86 backend about the register constraints of its addressing mode.Chris Lattner2005-11-191-1/+2
| | | | | | Patch by Evan Cheng llvm-svn: 24423
* Capture more operand info, patch by Evan ChengChris Lattner2005-11-191-1/+2
| | | | llvm-svn: 24422
* 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 load and other support to the dag-dag isel. Patch contributed by EvanChris Lattner2005-11-191-2/+225
| | | | | | Cheng! llvm-svn: 24419
* 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
* Fix a crash building 176.gcc due to my recent patch, which only fixedChris Lattner2005-11-181-1/+1
| | | | | | half the problem. llvm-svn: 24414
* prevent latent switch creationAndrew Lenharth2005-11-181-2/+2
| | | | llvm-svn: 24413
* Split out the shift code from visitBinary.Nate Begeman2005-11-181-7/+14
| | | | llvm-svn: 24412
* Implement a refinement to the mem2reg algorithm for cases where an allocaChris Lattner2005-11-181-0/+55
| | | | | | | | | | has a single def. In this case, look for uses that are dominated by the def and attempt to rewrite them to directly use the stored value. This speeds up mem2reg on these values and reduces the number of phi nodes inserted. This should address PR665. llvm-svn: 24411
* This needs proper dominanceChris Lattner2005-11-181-5/+14
| | | | llvm-svn: 24410
* post-dom-frontiers requires proper post-dominanceChris Lattner2005-11-181-1/+1
| | | | llvm-svn: 24409
* This requires proper dominanceChris Lattner2005-11-181-1/+1
| | | | llvm-svn: 24408
* add more patterns, patch by Evan Cheng.Chris Lattner2005-11-181-108/+156
| | | | llvm-svn: 24406
* Also add the new vector value type here, for completeness.Nate Begeman2005-11-181-0/+1
| | | | llvm-svn: 24405
* only use dyld stubs if not in ppc-static mode. This completes support forChris Lattner2005-11-171-15/+21
| | | | | | non-static codegen. llvm-svn: 24403
* This was checking the wrong GEP expression. Fixing this fixes a gccas crashChris Lattner2005-11-171-1/+1
| | | | | | compiling mysql reported by Ted Kremenek. llvm-svn: 24402
* refactor call operand handling to eliminate special cases from printOp.Chris Lattner2005-11-171-19/+17
| | | | llvm-svn: 24401
* disentangle call operands from branch operands a bitChris Lattner2005-11-172-3/+9
| | | | llvm-svn: 24400
* add an option to generate completely non-pic code, corresponding to whatChris Lattner2005-11-173-2/+17
| | | | | | | | | | | | | gcc -static produces on PPC. This is used for building kexts and other things. With this, materializing the address of a global looks like: lis r2, ha16(L_H$non_lazy_ptr) la r3, lo16(L_H$non_lazy_ptr)(r2) we're still emitting stubs for functions, which is wrong. That is next. llvm-svn: 24399
* Fix a bug that resistor on IRC hit where we tried to create token factorChris Lattner2005-11-171-2/+2
| | | | | | nodes of load results, not of their chain results. llvm-svn: 24398
* Enable global address legalization, fixing a todo and allowing the removalChris Lattner2005-11-173-49/+2
| | | | | | | | of some code. This exposes the implicit load from the stubs to the DAG, allowing them to be optimized by the dag combiner. It also moves darwin specific stuff out of the isel into the legalizer, and allows more to be moved to the .td file. llvm-svn: 24397
* Teach the selector to fold lo(g) into load instruction immediate fieldsChris Lattner2005-11-171-0/+8
| | | | llvm-svn: 24396
* Generate LA and ADDIS when possible.Chris Lattner2005-11-171-4/+6
| | | | llvm-svn: 24395
* Use the right accessor to create this nodeChris Lattner2005-11-171-1/+1
| | | | llvm-svn: 24394
* Add an initial hack at legalizing GlobalAddress into the appropriate nodesChris Lattner2005-11-174-2/+52
| | | | | | | | | | | | | | | | on Darwin to remove smarts from the isel. This is currently disabled by default (uncomment setOperationAction(ISD::GlobalAddress to enable it). tblgen needs to become smarter about tglobaladdr nodes and bigger patterns needed to be added to the .td file. However, we can currently emit stuff like this: :) li r2, lo16(L_x$non_lazy_ptr) lis r3, ha16(L_x$non_lazy_ptr) lwzx r2, r3, r2 The obvious improvements will follow. llvm-svn: 24390
* Add globaladdress and targetglobaladdress nodes for dag patternsChris Lattner2005-11-171-0/+4
| | | | llvm-svn: 24389
* LI could theoretically be used for the lo-part of a global address, just likeChris Lattner2005-11-171-1/+1
| | | | | | lis can be used for the high part. llvm-svn: 24388
OpenPOWER on IntegriCloud