summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* R600/SI: Fix broken check prefixes in testMatt Arsenault2014-11-081-31/+30
| | | | llvm-svn: 221565
* Transforms: address some late commentsSaleem Abdulrasool2014-11-082-31/+14
| | | | | | | | | | We already use the llvm namespace. Remove the unnecessary prefix. Use the StringRef::equals method to compare with C strings rather than instantiating std::strings. Addresses late review comments from David Majnemer. llvm-svn: 221564
* Transforms: sort source files in buildSaleem Abdulrasool2014-11-081-4/+4
| | | | | | Sort target sources. NFC. llvm-svn: 221563
* [Objective-C Sema]. Issue availability/deprecated warning when Fariborz Jahanian2014-11-073-6/+25
| | | | | | | there is a uinque method found when message is sent to receiver of 'id' type. // rdar://18848183 llvm-svn: 221562
* Remove the top-level DebugDriverThread in ProcessWindows.Zachary Turner2014-11-0714-860/+74
| | | | | | | | | | Originally the idea was that we would queue requests to a master thread that would dispatch them to other slave threads each responsible for debugging an individual process. This might make some scenarios more scalable and responsive, but for now it seems to be unwarranted complexity for no observable benefit. llvm-svn: 221561
* SelectionDAG: Assert if we truncate SDNode's NumOperands or NumValuesDavid Majnemer2014-11-071-1/+10
| | | | | | | No functionality change intended, this just stops us early if we created a bad SDNode. llvm-svn: 221560
* ARM ABI: simplify decisions on whether args can be expanded.Tim Northover2014-11-075-55/+36
| | | | | | | | | | | | Homogeneous aggregates on AAPCS_VFP ARM need to be passed *without* being flattened (e.g. [2 x float] rather than "float, float") for various weird ABI reasons. However, this isn't the case for anything else; further, we know at the ABIArgInfo::getDirect callsites whether this flattening is allowed. So, we can get more unified ARM code, with a simpler Clang, by just using that knowledge directly. llvm-svn: 221559
* Introduce a SanitizerKind enum to LangOptions.Alexey Samsonov2014-11-0719-241/+257
| | | | | | | | | | | | | Use the bitmask to store the set of enabled sanitizers instead of a bitfield. On the negative side, it makes syntax for querying the set of enabled sanitizers a bit more clunky. On the positive side, we will be able to use SanitizerKind to eventually implement the new semantics for -fsanitize-recover= flag, that would allow us to make some sanitizers recoverable, and some non-recoverable. No functionality change. llvm-svn: 221558
* Use @rpath for ASan dylib in MakefilesKuba Brecka2014-11-071-2/+0
| | | | | | Reviewed at http://reviews.llvm.org/D6176 llvm-svn: 221557
* Use @rpath for ASan dylib in MakefilesKuba Brecka2014-11-071-2/+2
| | | | | | Reviewed at http://reviews.llvm.org/D6176 llvm-svn: 221556
* [Reassociate] Better preserve NSW/NUW flags.Chad Rosier2014-11-072-0/+45
| | | | | | | | Part of PR12985. Phabricator Revision: http://reviews.llvm.org/D6172 llvm-svn: 221555
* Transforms: use typedef rather than using aliasesSaleem Abdulrasool2014-11-071-26/+25
| | | | | | | | Visual Studio 2012 apparently does not support using alias declarations. Use the more traditional typedef approach. This should let the Windows buildbots pass. NFC. llvm-svn: 221554
* [mach-o] remove stray debug outputNick Kledzik2014-11-071-3/+0
| | | | llvm-svn: 221553
* [mach-o] Fix MachOFileNode to own archives same as ELFFileNodeNick Kledzik2014-11-072-1/+6
| | | | | | | | | My previous fix to have FileArchive own the member MemoryBuffers was not a complete solution for darwin because nothing owned the FileArchive object. Fixed MachOFileNode to be like ELFFileNode and have the graph node own the archive object. llvm-svn: 221552
* PPC fix works for ARM, tooRenato Golin2014-11-071-1/+0
| | | | llvm-svn: 221551
* Safely generate new loop metadata nodeDavid Peixotto2014-11-072-1/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Polly was accidently modifying a debug info metadata node when attempting to generate a new unique metadata node for the loop id. The problem was that we had dwarf metadata that referred to a metadata node with a null value, like this: !6 = ... some dwarf metadata referring to !7 ... !7 = {null} When we attempt to generate a new metadata node, we reserve the first space for self-referential node by setting the first argument to null and then mutating the node later to refer to itself. However, because the nodes are uniqued based on pointer values, when we get the new metadata node it actually referred to an existing node (!7 in the example). When we went to modify the metadata to point to itself, we were accidently mutating the dwarf metatdata. We ended up in this situation: !6 = ... some dwarf metadata referring to !7 ... !7 = {!7} and this causes an assert when generating the debug info. The fix is simple, we just need to use a unique value when getting a new metadata node. The MDNode::getTemporary() provides exactly the API we need (and it is used in clang to generate the unique nodes). Differential Revision: http://reviews.llvm.org/D6174 llvm-svn: 221550
* Remove unused variable.Rafael Espindola2014-11-071-2/+2
| | | | llvm-svn: 221549
* Transform: add SymbolRewriter passSaleem Abdulrasool2014-11-0710-2/+822
| | | | | | | | | | | | | | | | This introduces the symbol rewriter. This is an IR->IR transformation that is implemented as a CodeGenPrepare pass. This allows for the transparent adjustment of the symbols during compilation. It provides a clean, simple, elegant solution for symbol inter-positioning. This technique is often used, such as in the various sanitizers and performance analysis. The control of this is via a custom YAML syntax map file that indicates source to destination mapping, so as to avoid having the compiler to know the exact details of the source to destination transformations. llvm-svn: 221548
* Fix style.Michael J. Spencer2014-11-072-10/+7
| | | | llvm-svn: 221547
* Fix style.Michael J. Spencer2014-11-072-9/+6
| | | | llvm-svn: 221546
* [mach-o] Add support for -order_file optionNick Kledzik2014-11-078-12/+282
| | | | | | | | | | | The darwin linker lets you rearrange functions and data for better locality (less paging). You do this with the -order_file option which supplies a text file containing one symbol per line. Implementing this required a small change to LayoutPass to add a custom sorter hook. llvm-svn: 221545
* Fix FileArchive member MemoryBuffer early destructionNick Kledzik2014-11-071-6/+16
| | | | | | | | | | | | | | | When FileArchive loads a member, it instantiates a temporary MemoryBuffer which points to the member range of the archive file. The problem is that the object file parsers call getBufferIndentifer() on that temporary MemoryBuffer and store that StringRef as the _path data member for that lld::File. When FileArchive::instantiateMember() goes out of scope the MemoryBuffer is deleted and the File::._path becomes a dangling reference. The fix adds a vector<> to FileArchive to own the instantiated MemoryBuffers. In addition it fixes member's path to be the standard format (e.g. "/path/libfoo.a(foo.o)") instead of just the leaf name. llvm-svn: 221544
* R600: Remove unused defineMatt Arsenault2014-11-071-2/+0
| | | | llvm-svn: 221543
* [ASan] Fix zero_page_pc test for PowerPCJay Foad2014-11-071-2/+2
| | | | | | | | | | | | | | | | | | | | | Summary: In the Power architecture, all branch instructions ignore the 2 least significant bits of the target address. Consequently if you branch to an invalid address, the address reported along with the SIGSEGV will have been rounded down to a multiple of 4. Tweak this test accordingly. This may fix the test for ARM too, in which case we could remove the XFAIL, but I have no way of testing that. Reviewers: kcc, willschm, glider, samsonov Reviewed By: samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6167 llvm-svn: 221542
* This was meant to be count, not m_countEnrico Granata2014-11-071-1/+1
| | | | llvm-svn: 221541
* SBValue::Cast is deprecated. This does not work as reliably as free-form ↵Enrico Granata2014-11-071-0/+1
| | | | | | casting via the expression evaluator. Some of our clients depend on it, so we can't remove it. But any new adopters should favor the expression parser as the way forward llvm-svn: 221540
* [Mips] Do not hard-code the paired relocation typeSimon Atanasyan2014-11-071-11/+15
| | | | | | | | Request `getPairRelocation()` function to get paired relocation type. That allows us to look up another pairs like R_MICROMIPS_HI16/LO16 in the future. llvm-svn: 221539
* Don't redeclare a pure virtual method.Rafael Espindola2014-11-072-39/+0
| | | | | | | | | | | I.E., there is no value is having void foo() override = 0; If it is override it is already present in a base class. Since it is pure, some other class will have to implement it. llvm-svn: 221537
* Use StringRefMemoryObject in llvm-mc. NFC.Rafael Espindola2014-11-071-29/+15
| | | | llvm-svn: 221536
* Fix clash of gcc toolchains in hexagon driver regression tests.Samuel Antao2014-11-075-10/+81
| | | | | | If clang was configured with a custom gcc toolchain (either by using GCC_INSTALL_PREFIX in cmake or the equivalent configure command), the path to the custom gcc toolchain path takes precedence to the one specified by -ccc-install-dir. This causes several regression tests to fail as they will be using an unexpected path. Adding the switch --gcc-toolchain="" in each test command is not enough as the hexagon toolchain implementation in the driver is not evaluating this argument. This commit modifies the hexagon toolchain to take the --gcc-toolchain="" argument into account when deciding the toolchain path, similarly to what is already done for other targets toolchains. Additionally, the faulty regression tests are modified in order to --gcc-toolchain="" be passed to the commands. llvm-svn: 221535
* [mips] Promote i32 arguments to i64 for the N32/N64 ABI and fix <64-bit ↵Daniel Sanders2014-11-0724-183/+263
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | structs... Summary: ... and after all that refactoring, it's possible to distinguish softfloat floating point values from integers so this patch no longer breaks softfloat to do it. Remove direct handling of i32's in the N32/N64 ABI by promoting them to i64. This more closely reflects the ABI documentation and also fixes problems with stack arguments on big-endian targets. We now rely on signext/zeroext annotations (already generated by clang) and the Assert[SZ]ext nodes to avoid the introduction of unnecessary sign/zero extends. It was not possible to convert three tests to use signext/zeroext. These tests are bswap.ll, ctlz-v.ll, ctlz-v.ll. It's not possible to put signext on a vector type so we just accept the sign extends here for now. These tests don't pass the vectors the same way clang does (clang puts multiple elements in the same argument, these map 1 element to 1 argument) so we don't need to worry too much about it. With this patch, all known N32/N64 bugs should be fixed and we now pass the first 10,000 tests generated by ABITest.py. Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6117 llvm-svn: 221534
* Revert r221404 which caused lldb to not displayFariborz Jahanian2014-11-072-39/+0
| | | | | | vararg expressions. llvm-svn: 221533
* Make sure only NEON enabled devices save/restore D16+ registersRenato Golin2014-11-072-2/+2
| | | | llvm-svn: 221532
* [CMake] LLVMSupport: Give system_libs PRIVATE scope when LLVMSupport is ↵NAKAMURA Takumi2014-11-072-36/+36
| | | | | | | | built as SHARED. Users of LLVMSupport won't inherit ${system_libs}. unittests/SupporTests is another user of libpthreads. Apply LLVM_SYSTEM_LIBS for him explicitly. llvm-svn: 221531
* Pass PRIVATE to target_link_libraries if using shared libraries.Rafael Espindola2014-11-072-15/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A shared library (unlike a .a), has its dependencies recorded in the library and we can pass PRIVATE to target_link_libraries. This patch then removes some bogus dependencies when using BUILD_SHARED_LIBS=ON. For example, we go from build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o: CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so lib/libLLVMCore.so lib/libLLVMBitReader.so lib/libLLVMTransformUtils.so lib/libLLVMInstCombine.so lib/libLLVMScalarOpts.so lib/libLLVMipa.so lib/libLLVMAnalysis.so lib/libLLVMMCParser.so lib/libLLVMMC.so lib/libLLVMObject.so lib/libLLVMTarget.so lib/libLLVMProfileData.so to build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o: CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so lib/libLLVMCore.so lib/libLLVMTransformUtils.so lib/libLLVMScalarOpts.so lib/libLLVMAnalysis.so lib/libLLVMMC.so lib/libLLVMTarget.so In fact, build.ninja goes from 5231028 bytes to 4896759 bytes. With this, old verisons of bfd ld (2.24 is OK, 2.23 warns) will print a bogus warning when building with BUILD_SHARED_LIBS. llvm-svn: 221530
* [mips] Removed the remainder of MipsCC. NFC.Daniel Sanders2014-11-072-39/+24
| | | | | | | | | | | | | | | | | Summary: One of the calls to AllocateStack (the one in LowerCall) doesn't look like it should be there but it was there before and removing it breaks the frame size calculation. Reviewers: vmedic, theraven Reviewed By: theraven Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6116 llvm-svn: 221529
* [mips] Remove MipsCC::reservedArgArea() in favour of ↵Daniel Sanders2014-11-074-18/+29
| | | | | | | | | | | | | | | | MipsABIInfo::GetCalleeAllocdArgSizeInBytes(). NFC. Summary: Reviewers: theraven, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6115 llvm-svn: 221528
* MipsCCState.h: Use LLVM_DELETED_FUNCTION for msc17.NAKAMURA Takumi2014-11-071-2/+2
| | | | llvm-svn: 221527
* llvm/test/tools/llvm-symbolizer/ppc64.test: Avoid subshell.NAKAMURA Takumi2014-11-071-1/+1
| | | | llvm-svn: 221526
* [mips] Move MipsCCState to a separate file and clang-formatted it.Daniel Sanders2014-11-074-199/+260
| | | | | | | | | | | | | | Summary: Depends on D6113 Reviewers: theraven, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6114 llvm-svn: 221525
* Improve comments in vtordisp tests: fix a typo, add a bit more clarityTimur Iskhodzhanov2014-11-071-10/+10
| | | | llvm-svn: 221524
* [ELF] Remove is64bits() and isLittlEndian().Shankar Easwaran2014-11-0712-47/+18
| | | | | | | | | | ELFLinkingContext had these two functions, which is really not needed since the Writer uses a llvm::object template composed of Endianness, Alignment, Is32bit/64bit. We could just use that and not duplicate functionality. No Change In Functionality. llvm-svn: 221523
* [mips] Fix unused variable warnings introduced in r221521Daniel Sanders2014-11-071-9/+0
| | | | llvm-svn: 221522
* [mips] Remove remaining use of MipsCC::intArgRegs() in favour of ↵Daniel Sanders2014-11-074-15/+18
| | | | | | | | | | | | | | | | MipsABIInfo::GetByValArgRegs() and MipsABIInfo::GetVarArgRegs() Summary: Depends on D6112 Reviewers: theraven, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6113 llvm-svn: 221521
* [sanitizer] Never remove the last frame off the stack trace.Evgeniy Stepanov2014-11-071-1/+1
| | | | | | It can only make it worse. llvm-svn: 221520
* [mips] Remove MipsCC::getRegVT(). NFCDaniel Sanders2014-11-072-22/+0
| | | | | | | | | | | | | | Summary: It's no longer used. Reviewers: vmedic, theraven Reviewed By: theraven Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6112 llvm-svn: 221519
* [mips] Remove MipsCC::analyzeCallOperands in favour of ↵Daniel Sanders2014-11-074-48/+42
| | | | | | | | | | | | | | | | | | CCState::AnalyzeCallOperands. NFC Summary: In addition to the usual f128 workaround, it was also necessary to provide a means of accessing ArgListEntry::IsFixed. Reviewers: theraven, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6111 llvm-svn: 221518
* [mips] Move SpecialCallingConv to MipsCCState and use it from ↵Daniel Sanders2014-11-073-46/+48
| | | | | | | | | | | | | | | | tablegen-erated code. NFC Summary: In the long run, it should probably become a calling convention in its own right but for now just move it out of MipsISelLowering::analyzeCallOperands() so that we can drop this function in favour of CCState::AnalyzeCallOperands(). Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6085 llvm-svn: 221517
* [mips] Removed IsVarArg from MipsISelLowering::analyzeCallOperands(). NFC.Daniel Sanders2014-11-072-8/+6
| | | | | | | | | | | Summary: CCState objects already carry this information in their isVarArg() method. Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6084 llvm-svn: 221516
* Move ARM failure from FIXME to XFAILRenato Golin2014-11-071-5/+1
| | | | llvm-svn: 221515
OpenPOWER on IntegriCloud