summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CrashReproducer] Setup 'case-sensitive' in YAML files.Bruno Cardoso Lopes2016-04-072-4/+29
| | | | | | | | | The crash reproducer was not setting up case sensitivity in the VFS yaml files, which defaults to true. Make the crash reproducer explicitly set that flag based on the case sensitivity of the .cache path where vfs and modules are dumped. llvm-svn: 265622
* [CrashReproducer] Move ModuleDependencyCollector method around. NFCBruno Cardoso Lopes2016-04-071-18/+18
| | | | llvm-svn: 265621
* [RegisterBankInfo] Add an helper function to get the size of a register.Quentin Colombet2016-04-061-8/+34
| | | | | | | The previous method to get the size was too simple and could fail for physical registers. llvm-svn: 265620
* Ignore --warn-execstack.Rui Ueyama2016-04-061-0/+1
| | | | | | | | Stack is not executable by default in LLD-built executables unless you pass -z execstack option. So --warn-execstack option does not make sense to us. llvm-svn: 265619
* Fix a race condition in support library ThreadPool.Justin Lebar2016-04-061-1/+4
| | | | | | | | | | | | | | | By running TSAN on the ThreadPool unit tests it was discovered that the threads in the pool can pop tasks off the queue at the same time the "wait" routine is trying to check if the task queue is empty. This patch fixes this problem by checking for active threads in the waiter before checking whether the queue is empty. Patch by Jason Henline. Differential Revision: http://reviews.llvm.org/D18811 Reviewers: joker.eph, jlebar llvm-svn: 265618
* NFC: use AtomicOrdering isStrongerThanJF Bastien2016-04-061-4/+6
| | | | | | | | | | Summary: As discussed in D18775. Reviewers: jyknight Differential Revision: http://reviews.llvm.org/D18840 llvm-svn: 265617
* Keep -fmodule-implementation-of as an alias of -fmodule-name.Manman Ren2016-04-062-5/+7
| | | | | | | | | This helps us transitioning to -fmodule-name. Once the transitioning is done, we can remove this alias. rdar://24800983 llvm-svn: 265616
* [sancov] enabling coverage edge pruning by default.Mike Aizatsky2016-04-064-13/+6
| | | | | | Differential Revision: http://reviews.llvm.org/D18844 llvm-svn: 265615
* [sancov] enabling coverage edge pruning by default.Mike Aizatsky2016-04-065-12/+12
| | | | | | Differential Revision: http://reviews.llvm.org/D18845 llvm-svn: 265614
* Another place for CMAKE_HOST_UNIXSean Silva2016-04-061-1/+1
| | | | | | | | | | | | | If we don't create the target, don't try to add it as a dependency. After r265595, we were only creating the SanitizerLintCheck when `CMAKE_HOST_UNIX` was true. CMake was emitting a warning: The dependency target "SanitizerLintCheck" of target "check-ubsan" does not exist. llvm-svn: 265613
* ValueMapper: clang-format ValueMapper.h, NFCDuncan P. N. Exon Smith2016-04-061-91/+92
| | | | | | Also remove duplicated identifiers from comments. llvm-svn: 265611
* Fix the compare-clang diff error introduced by r265547.Wei Mi2016-04-061-1/+2
| | | | | | | Use MapVector instead of DenseMap for MergeableSpillsMap so it will be iterated in determined order. llvm-svn: 265610
* sync up with master copyXinliang David Li2016-04-061-1/+1
| | | | llvm-svn: 265609
* [llvm-c] Add LLVMGetValueKind.Peter Zotov2016-04-063-53/+118
| | | | | | | | Patch by Nicole Mazzuca <npmazzuca@gmail.com>. Differential Revision: http://reviews.llvm.org/D18729 llvm-svn: 265608
* Needed change to lld for the change to createBinary() now returning ↵Kevin Enderby2016-04-061-1/+3
| | | | | | | | | Expected<...> With the llvm change in r265606 this is the matching needed change to the lld code now that createBinary() is returning Expected<...> . llvm-svn: 265607
* Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump ↵Kevin Enderby2016-04-0635-95/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to produce a real error message Produce the first specific error message for a malformed Mach-O file describing the problem instead of the generic message for object_error::parse_failed of "Invalid data was encountered while parsing the file”.  Many more good error messages will follow after this first one. This is built on Lang Hames’ great work of adding the ’Error' class for structured error handling and threading Error through MachOObjectFile construction. And making createMachOObjectFile return Expected<...> . So to to get the error to the llvm-obdump tool, I changed the stack of these methods to also return Expected<...> : object::ObjectFile::createObjectFile() object::SymbolicFile::createSymbolicFile() object::createBinary() Then finally in ParseInputMachO() in MachODump.cpp the error can be reported and the specific error message can be printed in llvm-objdump and can be seen in the existing test case for the existing malformed binary but with the updated error message. Converting these interfaces to Expected<> from ErrorOr<> does involve touching a number of places. To contain the changes for now use of errorToErrorCode() and errorOrToExpected() are used where the callers are yet to be converted. Also there some were bugs in the existing code that did not deal with the old ErrorOr<> return values. So now with Expected<> since they must be checked and the error handled, I added a TODO and a comment: “// TODO: Actually report errors helpfully” and a call something like consumeError(ObjOrErr.takeError()) so the buggy code will not crash since needed to deal with the Error. Note there is one fix also needed to lld/COFF/InputFiles.cpp that goes along with this that I will commit right after this. So expect lld not to built after this commit and before the next one. llvm-svn: 265606
* [LoopUnroll] Fix the way we update DT after complete unrolling.Michael Zolotukhin2016-04-062-10/+68
| | | | | | | | Updating dominators for exit-blocks of the unrolled loops is not enough, as shown in PR27157. The proper way is to update dominators for all dominance-children of original loop blocks. llvm-svn: 265605
* [RegisterBankInfo] Add methods to get the possible mapping of an instruction ↵Quentin Colombet2016-04-062-0/+86
| | | | | | | | | | | | | | | | | | | | | | | on a register bank. This will be used by the register bank select pass to assign register banks for generic virtual registers. This was originally committed as r265573 but broke at least one windows bot. The problem with the windows bot was that it was using a copy constructor for the InstructionMappings class and could not synthesize it. Actually, the fact that this class is not copy constructable is expected and the compiler should use the move assignment constructor. Marking the problematic assignment explicitly as using the move constructor has its own problems. Indeed, with recent clang we get a warning that we may prevent the elision of the copy by the compiler. A proper fix for both compilers would be to change the API of getPossibleInstrMapping to take a InstructionMappings as input/output parameter. This does not feel natural and since GISel is not used on windows yet, I chose to workaround the problem by not compiling the problematic code on windows. llvm-svn: 265604
* [lld] Fix build failure from r265600Adhemerval Zanella2016-04-061-0/+1
| | | | llvm-svn: 265603
* NFC: make AtomicOrdering an enum classJF Bastien2016-04-0637-312/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In the context of http://wg21.link/lwg2445 C++ uses the concept of 'stronger' ordering but doesn't define it properly. This should be fixed in C++17 barring a small question that's still open. The code currently plays fast and loose with the AtomicOrdering enum. Using an enum class is one step towards tightening things. I later also want to tighten related enums, such as clang's AtomicOrderingKind (which should be shared with LLVM as a 'C++ ABI' enum). This change touches a few lines of code which can be improved later, I'd like to keep it as NFC for now as it's already quite complex. I have related changes for clang. As a follow-up I'll add: bool operator<(AtomicOrdering, AtomicOrdering) = delete; bool operator>(AtomicOrdering, AtomicOrdering) = delete; bool operator<=(AtomicOrdering, AtomicOrdering) = delete; bool operator>=(AtomicOrdering, AtomicOrdering) = delete; This is separate so that clang and LLVM changes don't need to be in sync. Reviewers: jyknight, reames Subscribers: jyknight, llvm-commits Differential Revision: http://reviews.llvm.org/D18775 llvm-svn: 265602
* Revert "Set the default C standard to C99 when targeting the PS4."Sean Silva2016-04-063-11/+3
| | | | | | | | | | | | | | | | | This reverts r265359. It breaks - llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast - llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast Failing Tests (5): Clang :: FixIt/fixit-errors.c Clang :: Preprocessor/init.c Clang :: Sema/attr-deprecated.c Clang :: Sema/nullability.c Clang :: SemaObjC/objcbridge-attribute-arc.m llvm-svn: 265601
* [lld] [ELF] Add ScriptParserBase classAdhemerval Zanella2016-04-064-166/+221
| | | | | | | | This patch add a base script tokenizer class to decouple parsing from linker script handling. The idea is to use this base class on dynamic list parsing (--dynamic-list option). No functionality added. llvm-svn: 265600
* [modules] Add forgotten test case to r265597.Vassil Vassilev2016-04-065-0/+16
| | | | llvm-svn: 265599
* Fix order-of-evaluation bug (causing GCC buildbots to fail).Richard Smith2016-04-061-1/+2
| | | | llvm-svn: 265598
* [modules] Don't try to add lookup results to non-lookup contexts.Vassil Vassilev2016-04-062-2/+8
| | | | | | | | Fixes https://llvm.org/bugs/show_bug.cgi?id=27186 Patch reviewed by Richard Smith. llvm-svn: 265597
* [MBP] Remove an unused function parameterHaicheng Wu2016-04-061-5/+3
| | | | | | NFC. llvm-svn: 265596
* Use `CMAKE_HOST_UNIX` to check the host.Sean Silva2016-04-061-1/+1
| | | | | | `UNIX` is for the target. llvm-svn: 265595
* Minor simplifications.Richard Smith2016-04-063-13/+7
| | | | llvm-svn: 265594
* [PPC] Use VSX/FP Facility integer load when an integer load's only users are ↵Ehsan Amiri2016-04-062-1/+109
| | | | | | | | | | | conversion to FP http://reviews.llvm.org/D18405 When the integer value loaded is never used directly as integer we should use VSX or Floating Point Facility integer loads and avoid extra direct move llvm-svn: 265593
* Restore slightly less dodgy diagnostic handler for inline asmTim Northover2016-04-062-2/+27
| | | | | | | | Turns out it was there mostly to prevent Clang asking people to report a bug. This time we report something to Clang's real diagnostics handler so that it exits with something approximating a real error and tidies up after itself. llvm-svn: 265592
* regenerate checksSanjay Patel2016-04-061-556/+828
| | | | llvm-svn: 265591
* Put quotes around #error string.James Y Knight2016-04-061-1/+1
| | | | | | | GCC reports "missing terminating ' character", even when it's being skipped by preprocessing. llvm-svn: 265590
* AMDGPU: Add a shader calling conventionNicolai Haehnle2016-04-06105-598/+540
| | | | | | | | | | | This makes it possible to distinguish between mesa shaders and other kernels even in the presence of compute shaders. Patch By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Differential Revision: http://reviews.llvm.org/D18559 llvm-svn: 265589
* Make this test a bit stronger.Rafael Espindola2016-04-062-2/+6
| | | | | | | Show that in addition to handling empty .eh_frame, it is merged with any regular .eh_frame. llvm-svn: 265588
* Revert "[RegisterBankInfo] Add methods to get the possible mapping of anQuentin Colombet2016-04-062-130/+8
| | | | | | | | | | | instruction on a register bank. This will be used by the register bank select pass to assign register banks for generic virtual registers." and the follow-on commits while I find out a way to fix the win7 bot: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/19882 This reverts commit r265578, r265581, r265584, and r265585. llvm-svn: 265587
* [IRVerifier] Don't crash on invalid DIFile inside DISubprogram.Davide Italiano2016-04-062-0/+12
| | | | | | | r265515, this time with the correct fix. file inside DISubprogram is not mandatory. llvm-svn: 265586
* [RegisterBankInfo] Get rid of the assert in the constructor of ↵Quentin Colombet2016-04-061-2/+0
| | | | | | | | | InstructionMapping. The default constructor now uses the regular constructor and the assert is not valid anymore. llvm-svn: 265585
* [RegisterBankInfo] Call the other constructor of InstructionMapping from theQuentin Colombet2016-04-061-1/+1
| | | | | | | | | default constructor, instead of relying on the default constructor of unique_ptr. Second attempt at fixing the windows bot. llvm-svn: 265584
* [gold] Save bitcode for module partitions (save-temps + split codegen).Evgeniy Stepanov2016-04-065-20/+52
| | | | llvm-svn: 265583
* [RegisterBankInfo] Provide a default constructor for InstructionMappingQuentin Colombet2016-04-062-0/+18
| | | | | | | | | helper class. The default constructor creates invalid (isValid() == false) instances and may be used to communicate that a mapping was not found. llvm-svn: 265581
* Sort relocations by name and size.Ed Schouten2016-04-061-13/+13
| | | | | | | Approved by: ruiu Differential Revision: http://reviews.llvm.org/D18835 llvm-svn: 265580
* [IRVerifier] Prefer dyn_cast<> over isa<> + cast<>.Davide Italiano2016-04-061-9/+8
| | | | | | Thanks to Rafael for the suggestion! llvm-svn: 265579
* [RegisterBankInfo] Add an helper function to get the size of a register.Quentin Colombet2016-04-061-8/+34
| | | | | | | The previous method to get the size was too simple and could fail for physical registers. llvm-svn: 265578
* IR: Use DenseSet instead of DenseMap for ConstantUniqueMap; NFCDuncan P. N. Exon Smith2016-04-063-43/+35
| | | | | | | | | | | | | | | | | | Use a DenseSet instead of a DenseMap for constants in LLVMContextImpl. Last time I looked at this was some time before r223588, when DenseSet<V> had no advantage over DenseMap<V,char>. After r223588, there's a 50% memory savings. This is all mechanical. There were little bits of missing API from DenseSet so I added the trivial implementations: - iterator::operator++(int) - template <class LookupKeyT> insert_as(ValueTy, LookupKeyT) There should be no functionality change, just reduced memory consumption (this wasn't on a profile or anything; just a cleanup I stumbled on). llvm-svn: 265577
* IR: Stop explicitly clearing the MDStringCacheDuncan P. N. Exon Smith2016-04-061-3/+0
| | | | | | | The MDStringCache doesn't need to be explicitly cleared before destruction. The destructor handles it at least as efficiently. llvm-svn: 265576
* Make TLS work for PIE executables on aarch64.Ed Schouten2016-04-062-0/+32
| | | | | | | | | | | | Similar to r265462, TLS related relocations aren't marked as relative, meaning that we end up generating R_AARCH64_RELATIVE relocations for them. This change adds TLS relocations that I've seen on my system. With this patch applied CloudABI's unit testing binary now passes on aarch64. Approved by: ruiu Differential Revision: http://reviews.llvm.org/D18816 llvm-svn: 265575
* [RegisterBankInfo] Add a method to get the mapping RegClass -> RegBank.Quentin Colombet2016-04-061-0/+17
| | | | | | This should be TableGen'ed at some point. llvm-svn: 265574
* [RegisterBankInfo] Add methods to get the possible mapping of an instruction ↵Quentin Colombet2016-04-062-0/+80
| | | | | | | | | on a register bank. This will be used by the register bank select pass to assign register banks for generic virtual registers. llvm-svn: 265573
* vim: add missing keywordSaleem Abdulrasool2016-04-061-2/+2
| | | | | | | `source_filename` was introduced as a keyword in SVN r264884, but the syntax file was not updated. llvm-svn: 265572
* Diagnose template alias declarations in local classes.Richard Smith2016-04-062-1/+7
| | | | | | Patch by Erik Pilkington! llvm-svn: 265571
OpenPOWER on IntegriCloud