summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix up a few formatting issues.Eric Christopher2014-06-191-14/+13
| | | | llvm-svn: 211307
* Remove an incorrect fixme.Rafael Espindola2014-06-191-2/+0
| | | | | | | dynamic-no-pic is just another output type. If gnu ld gets support for MachO, it should also add something like LDPO_DYN_NO_PIC to the plugin interface. llvm-svn: 211305
* Fix typosAlp Toker2014-06-195-8/+8
| | | | llvm-svn: 211304
* Support: Add llvm::sys::fs::copy_fileJustin Bogner2014-06-192-0/+40
| | | | | | A function to copy one file's contents to another. llvm-svn: 211302
* Remove bogus configure checkDavid Greene2014-06-191-4/+0
| | | | | | | Configure creates makefiles, so it doesn't make sense to check for them to see if we can configure. llvm-svn: 211301
* Add option to keep flavor out of the install directoryDavid Greene2014-06-191-1/+5
| | | | | | | | Sometimes we want to install things in "standard" locations and the flavor directories interfere with that. Add an option to keep them out of the install path. llvm-svn: 211300
* Turn of -Werror by defaultDavid Greene2014-06-191-3/+7
| | | | | | Don't build with -Werror unless asked to. llvm-svn: 211299
* Fix this test a little harder - use llc_dwarf to make sure we don'tEric Christopher2014-06-191-3/+3
| | | | | | try to execute it on windows. llvm-svn: 211298
* Remove unused includes following r211294Alp Toker2014-06-191-2/+0
| | | | llvm-svn: 211297
* Use the c++ APIs.Rafael Espindola2014-06-191-6/+7
| | | | | | No functionality change. llvm-svn: 211294
* Relax this test a bit, we don't need the full contents of theEric Christopher2014-06-191-7/+2
| | | | | | frame section to match, just the version for this test. llvm-svn: 211293
* Remove use of removed function, llvm_stop_multithreadingDavid Blaikie2014-06-191-2/+0
| | | | llvm-svn: 211291
* Remove circular header reference in Threading.h/Mutex.hDavid Blaikie2014-06-191-2/+0
| | | | llvm-svn: 211290
* Fix build on non-Windows platforms.Zachary Turner2014-06-191-1/+3
| | | | llvm-svn: 211288
* Remove support for LLVM runtime multi-threading.Zachary Turner2014-06-197-99/+19
| | | | | | | | | | | | | After a number of previous small iterations, the functions llvm_start_multithreaded() and llvm_stop_multithreaded() have been reduced essentially to no-ops. This change removes them entirely. Reviewed by: rnk, dblaikie Differential Revision: http://reviews.llvm.org/D4216 llvm-svn: 211287
* DebugInfo: Fission: Ensure the address pool entries for location lists are ↵David Blaikie2014-06-192-1/+8
| | | | | | | | | emitted. The address pool was being emitted before location lists. The latter could add more entries to the pool which would be lost/never emitted. llvm-svn: 211284
* MCNullStreamer: assign file IDs to resolve crashes and errorsAlp Toker2014-06-195-9/+7
| | | | | | | | | | Use the MCStreamer base implementations for file ID tracking instead of overriding them as no-ops. Avoids assertions when streaming Dwarf debug info, and fixes ASM parsing of loc and file directives. llvm-svn: 211282
* [ValueTracking] Extend range metadata to call/invokeJingyue Wu2014-06-199-16/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: With this patch, range metadata can be added to call/invoke including IntrinsicInst. Previously, it could only be added to load. Rename computeKnownBitsLoad to computeKnownBitsFromRangeMetadata because range metadata is not only used by load. Update the language reference to reflect this change. Test Plan: Add several tests in range-2.ll to confirm the verifier is happy with having range metadata on call/invoke. Add two tests in AddOverFlow.ll to confirm annotating range metadata to call/invoke can benefit InstCombine. Reviewers: meheff, nlewycky, reames, hfinkel, eliben Reviewed By: eliben Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D4187 llvm-svn: 211281
* Tests for r211273Oliver Stannard2014-06-194-0/+219
| | | | llvm-svn: 211279
* Kill the LLVM global lock.Zachary Turner2014-06-195-30/+22
| | | | | | | | | | | | | | This patch removes the LLVM global lock, and updates all existing users of the global lock to use their own mutex. None of the existing users of the global lock were protecting code that was mutually exclusive with any of the other users of the global lock, so its purpose was not being met. Reviewed by: rnk Differential Revision: http://reviews.llvm.org/D4142 llvm-svn: 211277
* Emit DWARF info for all code section in an assembly fileOliver Stannard2014-06-198-70/+220
| | | | | | | | Currently, when using llvm as an assembler, DWARF debug information is only generated for the .text section. This patch modifies this so that DWARF info is emitted for all executable sections. llvm-svn: 211273
* Emit DWARF3 call frame information when DWARF3+ debug info is requestedOliver Stannard2014-06-1929-74/+132
| | | | | | | | | | | | | | | | Currently, llvm always emits a DWARF CIE with a version of 1, even when emitting DWARF 3 or 4, which both support CIE version 3. This patch makes it emit the newer CIE version when we are emitting DWARF 3 or 4. This will not reduce compatibility, as we already emit other DWARF3/4 features, and is worth doing as the DWARF3 spec removed some ambiguities in the interpretation of call frame information. It also fixes a minor bug where the "return address" field of the CIE was encoded as a ULEB128, which is only valid when the CIE version is 3. There are no test changes for this, because (as far as I can tell) none of the platforms that we test have a return address register with a DWARF register number >127. llvm-svn: 211272
* [mips] Implementation of dli.Matheus Almeida2014-06-194-7/+312
| | | | | | | | | | | Patch by David Chisnall His work was sponsored by: DARPA, AFRL Some small modifications to the original patch: we now error if it's not possible to expand an instruction (mips-expansions-bad.s has some examples). Added some comments to the expansions. llvm-svn: 211271
* [mips] Small update to the logic behind the expansion of assembly pseudo ↵Matheus Almeida2014-06-191-9/+20
| | | | | | | | | | | | | | | | instructions. Summary: The functions that do the expansion now return false on success and true otherwise. This is so we can catch some errors during the expansion (e.g.: immediate too large). The next patch adds some test cases. Reviewers: vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D4214 llvm-svn: 211269
* Updated comments as suggested by Rafael. Thanks.Dinesh Dwivedi2014-06-191-1/+7
| | | | llvm-svn: 211268
* Added instruction combine to transform few more negative values addition to ↵Dinesh Dwivedi2014-06-192-0/+108
| | | | | | | | | | | | subtraction (Part 1) This patch enables transforms for following patterns. (x + (~(y & c) + 1) --> x - (y & c) (x + (~((y >> z) & c) + 1) --> x - ((y>>z) & c) Differential Revision: http://reviews.llvm.org/D3733 llvm-svn: 211266
* [X86] Teach how to combine horizontal binop even in the presence of undefs.Andrea Di Biagio2014-06-192-40/+440
| | | | | | | | | | | | | | Before this change, the backend was unable to fold a build_vector dag node with UNDEF operands into a single horizontal add/sub. This patch teaches how to combine a build_vector with UNDEF operands into a horizontal add/sub when possible. The algorithm conservatively avoids to combine a build_vector with only a single non-UNDEF operand. Added test haddsub-undef.ll to verify that we correctly fold horizontal binop even in the presence of UNDEFs. llvm-svn: 211265
* Refactored and updated SimplifyUsingDistributiveLaws() to Dinesh Dwivedi2014-06-193-105/+210
| | | | | | | | | | | | * Find factorization opportunities using identity values. * Find factorization opportunities by treating shl(X, C) as mul (X, shl(C)) * Keep NSW flag while simplifying instruction using factorization. This fixes PR19263. Differential Revision: http://reviews.llvm.org/D3799 llvm-svn: 211261
* CommandLine: bail out when options get multiply registeredAlp Toker2014-06-191-3/+13
| | | | | | | | | | These errors are strictly unrecoverable and indicate serious issues such as conflicting option names or an incorrectly linked LLVM distribution. With this change, the errors actually get detected so tests don't pass silently. llvm-svn: 211260
* Remove OwningPtr.h and associated testsAlp Toker2014-06-194-447/+0
| | | | | | llvm::OwningPtr is superseded by std::unique_ptr. llvm-svn: 211259
* InstCombine: Stop two transforms duelingDavid Majnemer2014-06-192-2/+18
| | | | | | | | | | | | | | | | | | | | | | InstCombineMulDivRem has: // Canonicalize (X+C1)*CI -> X*CI+C1*CI. InstCombineAddSub has: // W*X + Y*Z --> W * (X+Z) iff W == Y These two transforms could fight with each other if C1*CI would not fold away to something simpler than a ConstantExpr mul. The InstCombineMulDivRem transform only acted on ConstantInts until r199602 when it was changed to operate on all Constants in order to let it fire on ConstantVectors. To fix this, make this transform more careful by checking to see if we actually folded away C1*CI. This fixes PR20079. llvm-svn: 211258
* Move -dwarf-version to an MC level command line option so it'sEric Christopher2014-06-195-13/+17
| | | | | | | used by all of the MC level tools and codegen. Fix up all uses in the compiler to use this and set it on the context accordingly. llvm-svn: 211257
* Remove unnecessary include.Eric Christopher2014-06-191-1/+0
| | | | llvm-svn: 211256
* 80-column fixups.Eric Christopher2014-06-191-5/+10
| | | | llvm-svn: 211255
* Convert some assert(0) to llvm_unreachable or fold an 'if' condition into ↵Craig Topper2014-06-1915-47/+26
| | | | | | the assert. llvm-svn: 211254
* R600: Add a few tests I forgot to add.Matt Arsenault2014-06-193-0/+103
| | | | | | These belong with r210827 llvm-svn: 211253
* Move optimization of some cases of (A & C1)|(B & C2) from instcombine to ↵Nick Lewycky2014-06-193-23/+69
| | | | | | instsimplify. Patch by Rahul Jain, plus some last minute changes by me -- you can blame me for any bugs. llvm-svn: 211252
* Make instsimplify's analysis of icmp eq/ne use computeKnownBits to determine ↵Nick Lewycky2014-06-193-1/+39
| | | | | | whether the icmp is always true or false. Patch by Suyog Sarda! llvm-svn: 211251
* Remove redundant code in InstCombineShift, no functionality change because ↵Nick Lewycky2014-06-191-5/+0
| | | | | | instsimplify already does this and instcombine calls instsimplify a few lines above. Patch by Suyog Sarda! llvm-svn: 211250
* MS asm: Properly handle quoted symbol namesDavid Majnemer2014-06-193-3/+25
| | | | | | | | | | | | | We would get confused by '@' characters in symbol names, we would mistake the text following them for the variant kind. When an identifier a string, the variant kind will never show up inside of it. Instead, check to see if there is a variant following the string. This fixes PR19965. llvm-svn: 211249
* R600/SI: Add intrinsics for various math instructions.Matt Arsenault2014-06-1920-32/+393
| | | | | | | | These will be used for custom lowering and for library implementations of various math functions, so it's useful to expose these as builtins. llvm-svn: 211247
* Fix breakage from r211244 by using LLVM_EXPLICIT to avoid using explicit ↵David Blaikie2014-06-191-1/+2
| | | | | | operators under MSVC where they're not supported. llvm-svn: 211246
* PR10140 - StringPool's PooledStringPtr has non-const operator== causing bad ↵Nikola Smiljanic2014-06-193-3/+35
| | | | | | | | OR-result. Mark conversion operator explicit and const qualify comparison operators. llvm-svn: 211244
* Move ARMJITInfo off of the TargetMachine and down onto the subtarget.Eric Christopher2014-06-189-24/+28
| | | | | | | | | This required untangling a mess of headers that included around. This a recommit of r210953 with a fix for the removed accessor for JITInfo. llvm-svn: 211233
* Use stdint macros for specifying size of constantsMatt Arsenault2014-06-181-2/+3
| | | | llvm-svn: 211231
* Teach llvm-size to know about Mach-O universal files (aka fat files) andKevin Enderby2014-06-183-1/+65
| | | | | | | | | | fat files containing archives. Also fix a bug in MachOUniversalBinary::ObjectForArch::ObjectForArch() where it needed a >= when comparing the Index with the number of objects in a fat file. As the index starts at 0. llvm-svn: 211230
* R600: Handle fnearbyintMatt Arsenault2014-06-183-0/+70
| | | | | | | | The difference from rint isn't really relevant here, so treat them as equivalent. OpenCL doesn't have nearbyint, so this is sort of pointless other than for completeness. llvm-svn: 211229
* R600/SI: add gather4 and getlod intrinsics (v3)Marek Olsak2014-06-186-26/+727
| | | | | | | | | This contains all the previous patches + getlod support on top of it. It doesn't use SDNodes anymore, so it's quite small. It also adds v16i8 to SReg_128, which is used for the sampler descriptor. Reviewed-by: Tom Stellard llvm-svn: 211228
* Use LL suffix for literal that should be 64-bits.Matt Arsenault2014-06-181-1/+1
| | | | | | This hopefully fixes Windows llvm-svn: 211225
* Add a symbols() range and use a range loop.Rafael Espindola2014-06-182-5/+7
| | | | llvm-svn: 211222
OpenPOWER on IntegriCloud