summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change the scheduler accessor methods to accept an explicit TargetMachineDan Gohman2008-11-114-10/+16
| | | | | | | argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. llvm-svn: 59055
* Add a README entry.Evan Cheng2008-11-111-0/+17
| | | | llvm-svn: 59052
* CMake: corrected split of Alpha and Sparc AsmPrinters.Oscar Fuentes2008-11-112-4/+2
| | | | llvm-svn: 59050
* Separate sparc asmprinter. This should unbreak the native buildAnton Korobeynikov2008-11-114-1/+27
| | | | llvm-svn: 59047
* Separate alpha asmprinter. This should unbreak native build.Anton Korobeynikov2008-11-114-1/+27
| | | | llvm-svn: 59046
* The 32-bit displacement field in an x86 address is signed. Arrange for itDan Gohman2008-11-111-10/+13
| | | | | | | | | | | | to be sign-extended when it is promoted to 64 bits for intermediate offset calculations. The offset calculations are done as uint64_t so that overflow conditions are well defined. This fixes a problem which is currently hidden by the x86 AsmPrinter but which was exposed by r58917 (which is temporarily reverted). See PR3027 for details. llvm-svn: 59044
* Update CMakeLists.txtCedric Venet2008-11-111-0/+1
| | | | llvm-svn: 59039
* Fix for PR3040:Bill Wendling2008-11-111-18/+35
| | | | | | | | | The CC was changed, but wasn't checked to see if it was legal if the DAG combiner was being run after legalization. Threw in a couple of checks just to make sure that it's okay. As far as the PR is concerned, no back-end target actually exhibited this problem, so there isn't an associated testcase. llvm-svn: 59035
* fix another libgcc blockerAndrew Lenharth2008-11-111-0/+1
| | | | llvm-svn: 59026
* Cleaned up and fix bugs in convert_rndsat nodeMon P Wang2008-11-112-18/+39
| | | | llvm-svn: 59025
* Unbreak the buildbot and back out (inadvertant) casting edits in CellSPUScott Michel2008-11-111-7/+7
| | | | | | backend. llvm-svn: 59018
* Encode VFP arithmetic instructions.Evan Cheng2008-11-114-108/+226
| | | | llvm-svn: 59016
* Cleanup debug info. assocated with deleted instructions.Devang Patel2008-11-111-2/+7
| | | | llvm-svn: 59012
* Add utility routines to remove dead debug info.Devang Patel2008-11-111-0/+60
| | | | llvm-svn: 59011
* CellSPU: Fix bug 3606, as well as some ongoing work.Scott Michel2008-11-103-12/+58
| | | | llvm-svn: 59009
* Small simplification. Use the iterator already present as the insertion point.Bill Wendling2008-11-101-4/+3
| | | | llvm-svn: 59008
* Comments and indentation.Evan Cheng2008-11-101-3/+3
| | | | llvm-svn: 59007
* Correct PIC function stub codegen.Evan Cheng2008-11-102-7/+52
| | | | llvm-svn: 59006
* Fix indentation.Dan Gohman2008-11-101-1/+1
| | | | llvm-svn: 59004
* Temporarily revert r58979 and related patch. It's causing a failure in X86 ↵Bill Wendling2008-11-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | bootstrap: Comparing stages 2 and 3 warning: ./cc1-checksum.o differs warning: ./cc1obj-checksum.o differs warning: ./cc1objplus-checksum.o differs warning: ./cc1plus-checksum.o differs Bootstrap comparison failure! ./alias.o differs ./alloc-pool.o differs ./attribs.o differs ./bb-reorder.o differs ./bitmap.o differs ./build/errors.o differs ./build/genattrtab.o differs ./build/genautomata.o differs ./build/genemit.o differs ./build/genextract.o differs ... -bw llvm-svn: 59003
* - Make sure that we don't over-increment the iterator when going through theBill Wendling2008-11-101-7/+8
| | | | | | | basic blocks. - Minor code clean-up. llvm-svn: 59002
* Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode toMon P Wang2008-11-107-2/+290
| | | | | | | support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. llvm-svn: 59001
* If the sign of exit condition and split condition does not matchDevang Patel2008-11-101-1/+6
| | | | | | then do not split loop index. llvm-svn: 58995
* Fix PR2667: add soft float support for sint_to_fp/uint_to_fpDuncan Sands2008-11-102-15/+25
| | | | | | | where the argument is an apint, or smaller than the minimum size for which there is a libcall (i32). llvm-svn: 58994
* Tweak some comments.Duncan Sands2008-11-102-5/+4
| | | | llvm-svn: 58993
* Small cleanups. No functionality change intended!Duncan Sands2008-11-102-16/+8
| | | | llvm-svn: 58992
* When promoting the result of fp_to_uint/fp_to_sint,Duncan Sands2008-11-101-10/+15
| | | | | | | | | | | | | | | | | | inform the optimizers that the result must be zero/ sign extended from the smaller type. For example, if a fp to unsigned i16 is promoted to fp to i32, then we are allowed to assume that the extra 16 bits are zero (because the result of fp to i16 is undefined if the result does not fit in an i16). This is quite aggressive, but should help the optimizers produce better code. This requires correcting a test which thought that fp_to_uint is some kind of truncation, which it is not: in the testcase (which does fp to i1), either the fp value converts to 0 or 1 or the result is undefined, which is quite different to truncation. llvm-svn: 58991
* Really fix testb optimization on big-endian.Dale Johannesen2008-11-101-5/+8
| | | | | | Fixes ppc32 bootstrap. llvm-svn: 58979
* Third time's a charm.Bill Wendling2008-11-101-60/+58
| | | | | | | The previous patches didn't match correctly. Also, we need to make sure that the conditional is the same before doing the transformation. llvm-svn: 58978
* Added support for the following definition of shufflevector Mon P Wang2008-11-1011-70/+302
| | | | | | <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
* eliminate a couple more uses of utohexstr.Chris Lattner2008-11-101-6/+10
| | | | llvm-svn: 58963
* Use utohex_buffer instead of utohexstr to avoid creating a temporaryChris Lattner2008-11-102-2/+5
| | | | | | string in the .ll and .s printers. llvm-svn: 58962
* Move getCastToEmpty out of DIDescriptor into DIFactory. It is anChris Lattner2008-11-101-44/+45
| | | | | | | implementation detail of DIFactory anyway, and this allows it to avoid recomputing the same type over and over. llvm-svn: 58960
* Fix an over aggressive assumption that struct decls will have a pointer toChris Lattner2008-11-101-1/+1
| | | | | | | an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. llvm-svn: 58959
* add new fileChris Lattner2008-11-101-0/+1
| | | | llvm-svn: 58955
* Add a new set of helper classes for creating and reading debug Chris Lattner2008-11-101-0/+662
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | information. This logically replaces the "Desc" classes in MachineModuleInfo. Nice features of these classes are that they: 1. Are much more efficient than MMI because they don't create a temporary parallel data structure for debug info that has to be 'serialized' and 'deserialized' into/out of the module. 2. These provide a much cleaner abstraction for debug info than MMI, which will make it easier to change the implementation in the future (to be MDNode-based). 3. These are much easier to use than the MMI interfaces, requiring a lot less code in the front-ends. 4. These can be used to both create (for frontends) and read (for codegen) debug information. DebugInfoBuilder can only be used to create the nodes. So far, this is implemented just enough to support the debug info generation needs of clang. This can and should be extended to support the full set of debug info constructs, and we should switch llvm-gcc and llc over to using this in the near future. This code also has a ton of FIXMEs in it, because the way we currently represent debug info in LLVM IR is basically insane in a variety of details. This sort of issue should be fixed when we eventually reimplement debug info on top of MDNodes. llvm-svn: 58954
* Forgot these.Evan Cheng2008-11-101-19/+19
| | | | llvm-svn: 58952
* Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.Evan Cheng2008-11-106-27/+27
| | | | llvm-svn: 58949
* Correction for the last patch. Should match the conditional in the first partBill Wendling2008-11-091-34/+42
| | | | | | of the select match, not the select instruction itself. llvm-svn: 58947
* 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
OpenPOWER on IntegriCloud