summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* The method of doing the matching with a 'select' instruction was wrong. TheBill Wendling2008-11-091-32/+39
| | | | | | | | | | | | | | | | | | original code was matching like this: if (match(A, m_Not(m_Value(B)))) B was already matched as a 'select' instruction. However, this isn't matching what we think it's matching. It would match B as a 'Value', so basically anything would match to it. In this case, a Constant matched. B was replaced with a constant representation. And then the wrong value would be used in the SelectInst::Create statement, causing a crash. After thinking on this for a moment, and after Nick L. told me how the pattern matching stuff was supposed to work, the solution was to match NOT an m_Value, but an m_Select. llvm-svn: 58946
* fix leakage of ValueNumberingNuno Lopes2008-11-091-0/+1
| | | | llvm-svn: 58933
* Temporarily revert 58825, which breaks PPC bootstrap.Dale Johannesen2008-11-091-1/+3
| | | | | | xs llvm-svn: 58930
* If the LHS of the FCMP is coming from a UIToFP instruction, then we don't wantBill Wendling2008-11-091-33/+88
| | | | | | | | | | | | | | | | | | | | | | | to generate signed ICMP instructions to replace the FCMP. This would violate the following: define i1 @test1(i32 %val) { %1 = uitofp i32 %val to double %2 = fcmp ole double %1, 0.000000e+00 ret i1 %2 } would be transformed into: define i1 @test1(i32 %val) { %1 = icmp slt i33 %val, 1 ret i1 %1 } which is obviously wrong. This patch modifes InstCombiner::FoldFCmp_IntToFP_Cst to handle when the LHS comes from UIToFP. llvm-svn: 58929
* Typo fixAnton Korobeynikov2008-11-091-1/+1
| | | | llvm-svn: 58928
* Temporary revert my last commit: it seems it's triggering some subtle bug in ↵Anton Korobeynikov2008-11-085-16/+31
| | | | | | | | backend and breaks llvm-gcc llvm-svn: 58926
* CMake: corrected library target name for dependency: LLVMCellSPU ->Oscar Fuentes2008-11-081-1/+1
| | | | | | LLVMCellSPUCodeGen. llvm-svn: 58925
* CMake: Reflected changes on the CellSPU target build. May require aOscar Fuentes2008-11-082-2/+13
| | | | | | clean start. llvm-svn: 58924
* Fixed a pasto.Oscar Fuentes2008-11-081-1/+2
| | | | llvm-svn: 58923
* CellSPU: Bring SPU's assembly printer more in-line with current LLVM codeScott Michel2008-11-085-647/+627
| | | | | | structure. Assembly printer now outputs the correct section for strings. llvm-svn: 58921
* Try to produce better code when scalarizing VSETCC.Duncan Sands2008-11-081-8/+26
| | | | llvm-svn: 58920
* Factor out offset printing code into generic AsmPrinter.Anton Korobeynikov2008-11-085-31/+16
| | | | | | | FIXME: it seems, that most of targets don't support offsets wrt CPI/GlobalAddress', was it intentional? llvm-svn: 58917
* The Index field of an AttributeWithIndex is of type unsigned, not uint16_t.Nicolas Geoffray2008-11-081-2/+2
| | | | llvm-svn: 58908
* StoreInst does not produce any result thus it's useless to create newAnton Korobeynikov2008-11-081-1/+1
| | | | | | | variable for it. This greatly reduces amount of unused variables in llvm2cpp-generated code llvm-svn: 58905
* Moved InvalidateInstructionCache to ARMJITInfo::emitFunctionStub which knows ↵Evan Cheng2008-11-081-22/+21
| | | | | | size of stub. llvm-svn: 58899
* Remove a InvalidateInstructionCache call with incorrect size.Evan Cheng2008-11-081-4/+0
| | | | llvm-svn: 58898
* Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ↵Evan Cheng2008-11-087-32/+32
| | | | | | ptr. llvm-svn: 58897
* Tell ARMJITInfo if codegen relocation is PIC. It changes how function stubs ↵Evan Cheng2008-11-083-8/+13
| | | | | | are generated. llvm-svn: 58896
* Rename isString -> isExternalSymbol; getString -> getExternalSymbol since ↵Evan Cheng2008-11-081-3/+3
| | | | | | these work on externsym machine relocations. llvm-svn: 58895
* More debug output.Evan Cheng2008-11-081-0/+2
| | | | llvm-svn: 58894
* Fix relocation for calls to external symbols.Evan Cheng2008-11-081-1/+1
| | | | llvm-svn: 58893
* CellSPU: Fix prologue/epilogue emission when function contains calls butScott Michel2008-11-081-2/+2
| | | | | | theframe size is 0; the prologue and epilogue should be emitted in this case. llvm-svn: 58890
* Rework r58829, allowing removal of dbg info intrinsics during allocaDaniel Dunbar2008-11-081-20/+24
| | | | | | | | promotion. - Eliminate uses after free and simplify tests. Devang: Please check that this is still doing what you intended. llvm-svn: 58887
* Skip over two-address use operands.Evan Cheng2008-11-081-0/+12
| | | | llvm-svn: 58883
* Handle ARM machine constantpool entry with non-lazy ptr.Evan Cheng2008-11-083-6/+24
| | | | llvm-svn: 58882
* Use ARMFunctionInfo to track number of constpool entries and jumptables.Evan Cheng2008-11-083-11/+28
| | | | llvm-svn: 58877
* Make testb optimization work on big-endian targets.Dale Johannesen2008-11-081-1/+4
| | | | llvm-svn: 58874
* More code clean up.Evan Cheng2008-11-073-17/+8
| | | | llvm-svn: 58872
* Make FP tests requiring two compares work on PPC (PR 642).Dale Johannesen2008-11-073-18/+35
| | | | | | | | | | This is Chris' patch from the PR, modified to realize that SETUGT/SETULT occur legitimately with integers, plus two fixes in LegalizeDAG to pass a valid result type into LegalizeSetCC. The argument of TLI.getSetCCResultType is ignored on PPC, but I think I'm following usage elsewhere. llvm-svn: 58871
* Get PIC jump table working.Evan Cheng2008-11-072-51/+54
| | | | llvm-svn: 58869
* More debug output.Evan Cheng2008-11-072-2/+4
| | | | llvm-svn: 58868
* Sign-extend rather than zero-extend when promotingDuncan Sands2008-11-071-6/+19
| | | | | | | | | | | | | | | | the condition for a BRCOND, according to what is returned by getSetCCResultContents. Since all targets return the same thing (ZeroOrOneSetCCResult), this should be harmless! The point is that all over the place the result of SETCC is fed directly into BRCOND. On machines for which getSetCCResultContents returns ZeroOrNegativeOneSetCCResult, this is a sign-extended boolean. So it seems dangerous to also feed BRCOND zero-extended booleans in some circumstances - for example, when promoting the condition. llvm-svn: 58861
* Flush the raw_ostream after emitting the assembly for a function.Dan Gohman2008-11-074-0/+8
| | | | | | | | | This is a temporary fix for the -print-emitted-asm option, where errs() is used as the stream, in the case where other code is using stderr without using errs()' buffer. Hopefully soon we'll fix errs() to be non-buffered instead. Patch by Preston Gurd. llvm-svn: 58859
* Fix unsigned->ppcf128 conversion.Dale Johannesen2008-11-071-0/+3
| | | | llvm-svn: 58856
* Fix compile warnings.Richard Osborne2008-11-072-3/+3
| | | | llvm-svn: 58840
* CellSPU: Ensure that C strings are always put in the .rodata sectionScott Michel2008-11-071-0/+1
| | | | llvm-svn: 58839
* Add XCore backend.Richard Osborne2008-11-0725-0/+4954
| | | | llvm-svn: 58838
* Jump table JIT support. Work in progress.Evan Cheng2008-11-076-76/+192
| | | | llvm-svn: 58836
* Jump tables may be emitted by target.Evan Cheng2008-11-071-9/+13
| | | | llvm-svn: 58835
* Teach CellSPU about ELF sections and new section emitter classes.Scott Michel2008-11-073-35/+46
| | | | | NB: This is likely to need more work. llvm-svn: 58832
* BCUI + 1 doesn't work. Use next instead.Bill Wendling2008-11-071-1/+2
| | | | llvm-svn: 58830
* Refactor code that adjusts the offsets of stack objects.Bill Wendling2008-11-071-79/+34
| | | | llvm-svn: 58829
* Encode misc arithmetic instructions.Evan Cheng2008-11-074-14/+88
| | | | llvm-svn: 58828
* Handle (delete) dbg intrinsics while promoting alloca.Devang Patel2008-11-071-3/+22
| | | | llvm-svn: 58826
* When we're doing a compare of load-AND-constant to 0Dale Johannesen2008-11-071-0/+46
| | | | | | | | | (e.g. a bitfield test) narrow the load as much as possible. The has the potential to avoid unnecessary partial-word load-after-store conflicts, which cause stalls on several targets. Also a size win on x86 (testb vs testl). llvm-svn: 58825
* - Modify the stack protector algorithm so that the stack slot is allocated inBill Wendling2008-11-072-39/+33
| | | | | | | | | LLVM IR code and not in the selection DAG ISel. This is a cleaner solution. - Fix the heuristic for determining if protectors are necessary. The previous one wasn't checking the proper type size. llvm-svn: 58824
* Remove unneeded header file.Bill Wendling2008-11-061-1/+0
| | | | llvm-svn: 58823
* Don't build a vector of returns. Just modify the Function in the loop.Bill Wendling2008-11-061-46/+49
| | | | llvm-svn: 58822
* Fixed scalarizing an extract subvector and prevent an infinite loopMon P Wang2008-11-062-3/+9
| | | | | | when simplify a vector. llvm-svn: 58820
* The size limit is for individual arrays. So if any array has more than 8 bytesBill Wendling2008-11-061-5/+3
| | | | | | in it, then emit stack protectors. llvm-svn: 58819
OpenPOWER on IntegriCloud