summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* add EP_OptimizerLast extension pointKostya Serebryany2012-03-231-0/+1
| | | | llvm-svn: 153353
* It's possible for two types, which are isomorphic, to be added to theBill Wendling2012-03-231-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | destination module, but one of them isn't used in the destination module. If another module comes along and the uses the unused type, there could be type conflicts when the modules are finally linked together. (This happened when building LLVM.) The test that was reduced is: Module A: %Z = type { %A } %A = type { %B.1, [7 x x86_fp80] } %B.1 = type { %C } %C = type { i8* } declare void @func_x(%C*, i64, i64) declare void @func_z(%Z* nocapture) Module B: %B = type { %C.1 } %C.1 = type { i8* } %A.2 = type { %B.3, [5 x x86_fp80] } %B.3 = type { %C.1 } define void @func_z() { %x = alloca %A.2, align 16 %y = getelementptr inbounds %A.2* %x, i64 0, i32 0, i32 0 call void @func_x(%C.1* %y, i64 37, i64 927) nounwind ret void } declare void @func_x(%C.1*, i64, i64) declare void @func_y(%B* nocapture) (Unfortunately, this test doesn't fail under llvm-link, only during an LTO linking.) The '%C' and '%C.1' clash. The destination module gets the '%C' declaration. When merging Module B, it looks at the '%C.1' subtype of the '%B' structure. It adds that in, because that's cool. And when '%B.3' is processed, it uses the '%C.1'. But the '%B' has used '%C' and we prefer to use '%C'. So the '@func_x' type is changed to 'void (%C*, i64, i64)', but the type of '%x' in '@func_z' remains '%A.2'. The GEP resolves to a '%C.1', which conflicts with the '@func_x' signature. We can resolve this situation by making sure that the type is used in the destination before saying that it should be used in the module being merged in. With this fix, LLVM and Clang both compile under LTO. <rdar://problem/10913281> llvm-svn: 153351
* ARM tidy up ARMConstantIsland.cpp.Jim Grosbach2012-03-231-156/+158
| | | | | | No functional change, just tidy up the code and nomenclature a bit. llvm-svn: 153347
* Pretty-printing comments for literal floating point in .s files.Jim Grosbach2012-03-231-2/+6
| | | | | | | Dump the hex representation to the comment stream as well as the float value. llvm-svn: 153346
* Add a hook in MCELFObjectTargetWriter to allow targets to sort relocationAkira Hatanaka2012-03-232-29/+13
| | | | | | entries in the relocation table before they are written out to the file. llvm-svn: 153345
* Don't convert objc_retainAutoreleasedReturnValue to objc_retain if itDan Gohman2012-03-231-2/+11
| | | | | | is retaining the return value of an invoke that it immediately follows. llvm-svn: 153344
* It's not possible to insert code immediately after an invoke in theDan Gohman2012-03-231-32/+42
| | | | | | | | | | | | same basic block, and it's not safe to insert code in the successor blocks if the edges are critical edges. Splitting those edges is possible, but undesirable, especially on the unwind side. Instead, make the bottom-up code motion to consider invokes to be part of their successor blocks, rather than part of their parent blocks, so that it doesn't push code past them and onto the edges. This fixes PR12307. llvm-svn: 153343
* Make it feasible for clients using EngineBuilder to capture the ↵Owen Anderson2012-03-232-38/+42
| | | | | | | | TargetMachine that is created as part of selecting the appropriate target. This is necessary if the client wants to be able to mutate TargetOptions (for example, fast FP math mode) after the initial creation of the ExecutionEngine. llvm-svn: 153342
* Add support for register masks to PBQP.Lang Hames2012-03-231-4/+38
| | | | llvm-svn: 153341
* Include cstdio in a few place that depended on getting it transitively ↵Benjamin Kramer2012-03-232-1/+3
| | | | | | through StringExtras.h llvm-svn: 153328
* Move ftostr into its last user (cppbackend) and simplify it a bit.Benjamin Kramer2012-03-232-0/+13
| | | | | | New code should use raw_ostream. llvm-svn: 153326
* When propagating equalities, eg replacing A with B in every basic blockDuncan Sands2012-03-231-0/+3
| | | | | | | | dominated by Root, check that B is available throughout the scope. This is obviously true (famous last words?) given the current logic, but the check may be helpful if more complicated reasoning is added one day. llvm-svn: 153323
* Indentation.Duncan Sands2012-03-231-1/+1
| | | | llvm-svn: 153322
* Ignore the last message.Bill Wendling2012-03-231-1/+3
| | | | llvm-svn: 153315
* Revert patch. It broke the build.Bill Wendling2012-03-231-3/+1
| | | | llvm-svn: 153314
* Dematerialize the source functions after we're done with them. This saves a bitBill Wendling2012-03-231-1/+3
| | | | | | of memory during LTO. llvm-svn: 153313
* Remove the C backend.Eric Christopher2012-03-2310-3775/+1
| | | | llvm-svn: 153307
* Fix up cmake build.Eric Christopher2012-03-231-1/+0
| | | | llvm-svn: 153306
* Take out the debug info probe stuff. It's making some changes toEric Christopher2012-03-233-268/+3
| | | | | | | the PassManager annoying and should be reimplemented as a decorator on top of existing passes (as should the timing data). llvm-svn: 153305
* Remove -enable-lsr-retry in time for 3.1.Andrew Trick2012-03-221-20/+10
| | | | llvm-svn: 153287
* Remove -enable-lsr-nested in time for 3.1.Andrew Trick2012-03-221-29/+10
| | | | | | Tests cases have been removed but attached to open PR12330. llvm-svn: 153286
* Some whitespace and comment cleanup.Bill Wendling2012-03-221-5/+0
| | | | llvm-svn: 153278
* Remove unneeded #ifdefs.Bill Wendling2012-03-221-3/+1
| | | | llvm-svn: 153277
* Add a 'dump' method to the type map. Doxygenify some of the comments and add aBill Wendling2012-03-221-23/+36
| | | | | | | | few comments where none existed before. Also change a function's name to match the current coding standard. No functionality change. llvm-svn: 153276
* Source order scheduler should not preschedule nodes with multiple uses. ↵Evan Cheng2012-03-221-7/+11
| | | | | | rdar://11096639 llvm-svn: 153270
* Assign node orders to target intrinsics which do not produce results. ↵Evan Cheng2012-03-221-0/+6
| | | | | | rdar://11096639 llvm-svn: 153269
* Refactor the code for visiting instructions out into helper functions.Dan Gohman2012-03-221-245/+271
| | | | llvm-svn: 153267
* Cleanup IVUsers::addUsersIfInteresting.Andrew Trick2012-03-221-12/+15
| | | | | | | Keep the public interface clean, even though LLVM proper does not currently use it. llvm-svn: 153263
* Remove unused simplifyIVUsersAndrew Trick2012-03-221-41/+0
| | | | llvm-svn: 153262
* Remove -enable-iv-rewrite, which has been unsupported since 3.0.Andrew Trick2012-03-221-265/+7
| | | | llvm-svn: 153260
* Added soft fail checks for the disassembler when decoding some corner cases ↵Silviu Baranga2012-03-221-1/+81
| | | | | | of the STRD, STRH, LDRD, LDRH, LDRSH and LDRSB instructions on ARM. llvm-svn: 153252
* Added soft fail cases for the disassembler when decoding LDRSBT, LDRHT or ↵Silviu Baranga2012-03-222-5/+35
| | | | | | LDRSHT instruction on ARM llvm-svn: 153251
* Added soft fail cases for the disassembler when decoding MUL instructions on ↵Silviu Baranga2012-03-221-5/+6
| | | | | | ARM. llvm-svn: 153250
* Remove some unnecessary forward declarations.Craig Topper2012-03-227-12/+0
| | | | llvm-svn: 153245
* Revert a series of commits to MCJIT to get the build working in CMakeChandler Carruth2012-03-2216-952/+1371
| | | | | | | | | | | | | | | (and hopefully on Windows). The bots have been down most of the day because of this, and it's not clear to me what all will be required to fix it. The commits started with r153205, then r153207, r153208, and r153221. The first commit seems to be the real culprit, but I couldn't revert a smaller number of patches. When resubmitting, r153207 and r153208 should be folded into r153205, they were simple build fixes. llvm-svn: 153241
* PPC::DBG_VALUE must use Reg+Imm frame-index elimination even for large ↵Hal Finkel2012-03-221-1/+2
| | | | | | | | offsets. Fixes PR12203. I don't have a small test case yet, but I'll try to construct one. llvm-svn: 153240
* add load/store volatility control to the C API, patch by Yiannis Tsiouris!Chris Lattner2012-03-221-0/+14
| | | | llvm-svn: 153238
* don't use "signed", just something I noticed in patches flying by.Chris Lattner2012-03-221-2/+2
| | | | llvm-svn: 153237
* In erroneous inline assembly we could mistakenly try to access theEric Christopher2012-03-221-1/+5
| | | | | | | | | metadata operand as an actual operand, leading to an assert. Error out in this case. rdar://11007633 llvm-svn: 153234
* [fast-isel] Fold "urem x, pow2" -> "and x, pow2-1". This should fix the 271%Chad Rosier2012-03-221-0/+7
| | | | | | | | | execution-time regression for nsieve-bits on the ARMv7 -O0 -g nightly tester. This may also improve compile-time on architectures that would otherwise generate a libcall for urem (e.g., ARM) or fall back to the DAG selector. rdar://10810716 llvm-svn: 153230
* [PathV2]: Fix bug in create_directories which caused infinite recursion onMichael J. Spencer2012-03-211-5/+6
| | | | | | | | som inputs. Bug found and fix proposed by Kal Conley! llvm-svn: 153225
* Re-factored RuntimeDyld.Danil Malyshev2012-03-217-1044/+749
| | | | | | Added ExecutionEngine/MCJIT tests. llvm-svn: 153221
* Fix ARM disassembly of VST1 and VST2 instructions with writeback. And add testKevin Enderby2012-03-211-0/+19
| | | | | | case for all opcodes handed by DecodeVSTInstruction() in ARMDisassembler.cpp . llvm-svn: 153218
* (no commit message)Danil Malyshev2012-03-211-0/+5
| | | | llvm-svn: 153208
* Based on this discussion: ↵Danil Malyshev2012-03-219-329/+200
| | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120305/138477.html 1. Declare a virtual function getPointerToNamedFunction() in JITMemoryManager 2. Move the implementation of getPointerToNamedFunction() form JIT/MCJIT to DefaultJITMemoryManager. llvm-svn: 153205
* Checking a build_vector for an all-ones value.Jim Grosbach2012-03-211-5/+14
| | | | | | | | Type legalization can zero-extend the elements of the build_vector node, so, for example, we may have an <8 x i8> with i32 elements of value 255. That should return 'true' for the vector being all ones. llvm-svn: 153203
* [asan] fix one more bug related to long doubleKostya Serebryany2012-03-211-1/+1
| | | | llvm-svn: 153189
* Put Is64BitMemOperand into !defined(NDEBUG) for now.Joerg Sonnenberger2012-03-211-0/+2
| | | | llvm-svn: 153185
* Use a signed value for this enum to avoid spuriuos warnings from gcc.Benjamin Kramer2012-03-212-2/+2
| | | | llvm-svn: 153184
* Teach instsimplify to gracefully degrade in the presence of instructionsChandler Carruth2012-03-211-0/+6
| | | | | | | | | | | | | | | | not attched to a basic block or function. There are conservatively correct answers in these cases, and this makes the analysis more useful in contexts where we have a partially formed bit of IR. I don't have any way to test this directly... suggestions welcome here, but I'm not seeing anything sadly. I only found this using a subsequent patch to the inliner which runs instsimplify on partially inlined instructions, and even then only on a quite large program. I never got a reasonable testcase out of it, and anything I do get is likely to be quite fragile due to requiring an interaction of two different passes, and the only result being a segfault if it goes wrong. llvm-svn: 153176
OpenPOWER on IntegriCloud