summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix MemoryBuffer::getSTDIN to *not* return null if stdin is empty, this is a ↵Daniel Dunbar2009-11-103-25/+28
| | | | | | | | lame API. Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs. llvm-svn: 86630
* Allow targets to specify register classes whose member registers should not ↵David Goodwin2009-11-105-9/+30
| | | | | | be renamed to break anti-dependencies. llvm-svn: 86628
* pull a bunch of logic out of instcombine into instsimplify for compare Chris Lattner2009-11-092-61/+106
| | | | | | simplification, this handles the foldable fcmp x,x cases among many others. llvm-svn: 86627
* Pass the (optional) TargetData object to ConstantFoldInstOperandsDan Gohman2009-11-091-9/+10
| | | | | | and ConstantFoldCompareInstOperands. llvm-svn: 86626
* inline a simple function.Chris Lattner2009-11-091-17/+20
| | | | llvm-svn: 86625
* rename SimplifyCompare -> SimplifyCmpInst and split it into Chris Lattner2009-11-093-11/+37
| | | | | | | Simplify[IF]Cmp pieces. Add some predicates to CmpInst to determine whether a predicate is fp or int. llvm-svn: 86624
* Now that the default is 'enabled,' a separate command line option for ARM isJim Grosbach2009-11-091-8/+1
| | | | | | not necessary. llvm-svn: 86621
* fix ConstantFoldCompareInstOperands to take the LHS/RHS asChris Lattner2009-11-094-35/+27
| | | | | | individual operands instead of taking a temporary array llvm-svn: 86619
* use instructionsimplify instead of a weak clone of ad-hoc folding stuff.Chris Lattner2009-11-091-22/+2
| | | | llvm-svn: 86616
* stub out a new libanalysis "instruction simplify" interface thatChris Lattner2009-11-092-0/+58
| | | | | | | | takes decimated instructions and applies identities to them. This is pretty minimal at this point, but I plan to pull some instcombine logic out into these and similar routines. llvm-svn: 86613
* Remove dlsym stubs, with Nate Begeman's permission.Jeffrey Yasskin2009-11-095-142/+8
| | | | llvm-svn: 86606
* Enable dynamic stack realignment by default.Jim Grosbach2009-11-091-1/+1
| | | | llvm-svn: 86604
* stub out a new form of BasicBlock::RemovePredecessorAndSimplify whichChris Lattner2009-11-091-5/+65
| | | | | | | simplifies instruction users of PHIs when the phi is eliminated. This will be moved to transforms/utils after some other refactoring. llvm-svn: 86603
* Set dynamic stack realignment to real values.Jim Grosbach2009-11-091-11/+3
| | | | llvm-svn: 86602
* Remove an unneeded #include.Dan Gohman2009-11-091-1/+0
| | | | llvm-svn: 86601
* Fix for 64-bit builds.Mike Stump2009-11-091-1/+1
| | | | llvm-svn: 86600
* Similar to r86588, but for Darwin this time.Bill Wendling2009-11-091-3/+3
| | | | llvm-svn: 86592
* The jump table was being generated before the end label for exception handlingBill Wendling2009-11-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | was generated. This caused code like this: ## The asm code for the function .section __TEXT,__const .align 2 lJTI11_0: LJTI11_0: .long LBB11_16 .long LBB11_4 .long LBB11_5 .long LBB11_6 .long LBB11_7 .long LBB11_8 .long LBB11_9 .long LBB11_10 .long LBB11_11 .long LBB11_12 .long LBB11_13 .long LBB11_14 Leh_func_end11: ## <---now in the wrong section! The `Leh_func_end11' would then end up in the wrong section, causing the resulting EH frame information to be wrong: __ZL11CheckRightsjPKcbRbRP6NSData.eh: .set Lset500eh,Leh_frame_end11-Leh_frame_begin11 .long Lset500eh ; Length of Frame Information Entry Leh_frame_begin11: .long Leh_frame_begin11-Leh_frame_common .long Leh_func_begin11-. .set Lset501eh,Leh_func_end11-Leh_func_begin11 .long Lset501eh ; FDE address range `Lset501eh' is now something huge instead of the real value. The X86 back-end generates the jump table after the EH information is emitted. Do the same here. llvm-svn: 86588
* Print "..." instead of all the uninteresting register clobbers on callDan Gohman2009-11-091-14/+54
| | | | | | | | | | | | instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... llvm-svn: 86583
* Default-addressspace null pointers don't alias anything. This allowsDan Gohman2009-11-091-0/+9
| | | | | | GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me) llvm-svn: 86582
* Fix dependencies added to model memory aliasing for post-RA scheduling. The ↵David Goodwin2009-11-091-96/+97
| | | | | | dependencies were overly conservative for memory access that are known not to alias. llvm-svn: 86580
* Fix a comment in a typo that Duncan noticed.Dan Gohman2009-11-091-1/+1
| | | | llvm-svn: 86575
* Generalize LCSSA to handle loops with exits with predecessors outsideDan Gohman2009-11-091-2/+14
| | | | | | | | | | | | the loop. This is needed because with indirectbr it may not be possible for LoopSimplify to guarantee that all loop exit predecessors are inside the loop. This fixes PR5437. LCCSA no longer actually requires LoopSimplify form, but for now it must still have the dependency because the PassManager doesn't know how to schedule LoopSimplify otherwise. llvm-svn: 86569
* Minor tidiness fixes.Dan Gohman2009-11-091-4/+3
| | | | llvm-svn: 86565
* Constify MachineFunctionAnalysis' TargetMachine reference.Dan Gohman2009-11-091-1/+1
| | | | llvm-svn: 86564
* add zextOrTrunc and sextOrTrunc methods, that are similar to the ones in APIntNuno Lopes2009-11-091-0/+24
| | | | llvm-svn: 86549
* Work around assembler not recognizing #0.0 form immediate for vmcpJim Grosbach2009-11-091-2/+2
| | | | llvm-svn: 86548
* Make lib/Support/Debug.cpp SetCurrentDebugType implementation part of llvm ↵Xerxes Ranby2009-11-091-1/+1
| | | | | | namespace to match function declaration in Debug.h. llvm-svn: 86544
* Fix PR5149.Bruno Cardoso Lopes2009-11-092-8/+6
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=5149 llvm-svn: 86543
* make this handle redefinition of malloc with different prototype correctly.Chris Lattner2009-11-091-3/+3
| | | | llvm-svn: 86525
* if a 'with overflow' intrinsic just has the normal result used, simplifyChris Lattner2009-11-091-0/+41
| | | | | | it to a normal binop. Patch by Alastair Lynn, testcase by me. llvm-svn: 86524
* Hide a couple of options.Evan Cheng2009-11-092-2/+3
| | | | llvm-svn: 86522
* 80 col.Evan Cheng2009-11-091-2/+4
| | | | llvm-svn: 86521
* fix PR5104: when printing a single character, return the result ofChris Lattner2009-11-091-9/+13
| | | | | | putchar in case there is an error. llvm-svn: 86515
* random tidyChris Lattner2009-11-091-2/+1
| | | | llvm-svn: 86511
* remove a redundant printout, LinkInArchive prints this as well.Chris Lattner2009-11-091-1/+0
| | | | llvm-svn: 86510
* enhance PHI slicing to handle the case when a slicable PHI is beginChris Lattner2009-11-091-74/+167
| | | | | | used by a chain of other PHIs. llvm-svn: 86503
* Small cleanups.Owen Anderson2009-11-091-8/+4
| | | | llvm-svn: 86499
* Revert my previous patch to ABCD and fix things the right way. There are ↵Owen Anderson2009-11-091-13/+28
| | | | | | | | | | | | | two problems addressed here: 1) We need to avoid processing sigma nodes as phi nodes for constraint generation. 2) We need to generate constraints for comparisons against constants properly. This includes our first working ABCD test! llvm-svn: 86498
* comment typos pointed out by DuncanChris Lattner2009-11-091-3/+3
| | | | llvm-svn: 86497
* Use Unified Assembly Syntax for the ARM backend.Jim Grosbach2009-11-0917-295/+294
| | | | llvm-svn: 86494
* Fix an issue where the ordering of blocks within a function could lead to ↵Owen Anderson2009-11-081-2/+4
| | | | | | | | | | | | | different constraint graphs being produced. The cause was that we were incorrectly marking sigma instructions as processed after handling the sigma-specific constraints for them, potentially neglecting to process them as normal instructions as well. Unfortunately, the testcase that inspired this still doesn't work because of a bug in the solver, which is next on the list to debug. llvm-svn: 86486
* Teach an instcombine to not pull trunc instructions through PHI nodesChris Lattner2009-11-081-10/+30
| | | | | | | | | when both the source and dest are illegal types, since it would cause the phi to grow (for example, we shouldn't transform test14b's phi to a phi on i320). This fixes an infinite loop on i686 bootstrap with phi slicing turned on, so turn it back on. llvm-svn: 86483
* Revert commit 81144, and add a comment. It caused bugpoint timeoutsDuncan Sands2009-11-081-3/+9
| | | | | | not to work any more on linux. llvm-svn: 86481
* reapply r8644[3-5] with only the scary part Chris Lattner2009-11-081-8/+151
| | | | | | (SliceUpIllegalIntegerPHI) disabled. llvm-svn: 86480
* Speculatively revert r8644[3-5], they seem to be leading to infinite loops inDaniel Dunbar2009-11-081-151/+8
| | | | | | llvm-gcc bootstrap. llvm-svn: 86478
* Add and-not (bic) patterns. Based heavily on patch by Brian Lucas!Anton Korobeynikov2009-11-081-1/+31
| | | | llvm-svn: 86471
* Move OR patterns upper to all logical stuff. No functionality change.Anton Korobeynikov2009-11-081-56/+56
| | | | llvm-svn: 86470
* Some nice peephole patterns. Based on patch by Brian Lucas!Anton Korobeynikov2009-11-081-0/+7
| | | | llvm-svn: 86469
* Print tab before operand of jccAnton Korobeynikov2009-11-081-1/+1
| | | | llvm-svn: 86468
OpenPOWER on IntegriCloud