summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* [AArch64] Change the CMake to avoid to build GlobalISel related APIsQuentin Colombet2016-04-062-18/+12
| | | | | | | | | | when GISel is not built. The positive side effects are: - We do not have to define dummy implementation - We do not have to do weird gymnastic to avoid like issues (like missing constructor or vtable for the base classes) llvm-svn: 265570
* NFC: make AtomicOrdering an enum classJF Bastien2016-04-068-114/+125
| | | | | | | | | | | | Summary: See LLVM change D18775 for details, this change depends on it. Reviewers: jyknight, reames Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18776 llvm-svn: 265569
* [AArch64] Teach the subtarget how to get to the RegisterBankInfo.Quentin Colombet2016-04-064-6/+80
| | | | | | | | | | | Rework the access to GlobalISel APIs to contain how much of the APIs we need to access for the final executable to build when GlobalISel is not built. This prevents massive usage of ifdefs in various places. Now, all the GlobalISel ifdefs will be happing only in AArch64TargetMachine.cpp. llvm-svn: 265567
* [lld][MachO] Clean up some unnecessarily verbose code. NFC.Lang Hames2016-04-061-4/+1
| | | | | | Suggested by Dave Blaikie in review of r265447. Thanks Dave! llvm-svn: 265566
* [RegisterBankInfo] Make the destructor public... that may be useful!Quentin Colombet2016-04-061-2/+3
| | | | llvm-svn: 265565
* Re-commit r265518 ("[modules] Continue factoring encoding of AST records out ofRichard Smith2016-04-066-1103/+996
| | | | | | | ASTWriter."), reverted in r265526, with a fix for an iterator invalidation bug (thanks, MSan!). llvm-svn: 265564
* [RegisterBankInfo] Implement the verify method of the InstructionMapping ↵Quentin Colombet2016-04-062-1/+26
| | | | | | | | helper class. This checks that all the register operands get a proper mapping. llvm-svn: 265563
* Loop Unroll: add options and tweak to make Partial unrolling more usefulFiona Glaser2016-04-062-3/+24
| | | | | | | | | | | | | | | | 1. Add FullUnrollMaxCount option that works like MaxCount, but also limits the unroll count for fully unrolled loops. So if a loop has an iteration count over this, it won't fully unroll. 2. Add CLI options for MaxCount and the new option, so they can be tested (plus a test). 3. Make partial unrolling obey MaxCount. An example use-case (the out of tree one this is originally designed for) is a target’s TTI can analyze a loop and decide on a max unroll count separate from the size threshold, e.g. based on register pressure, then constrain LoopUnroll to not exceed that, regardless of the size of the unrolled loop. llvm-svn: 265562
* [MachineRegisterInfo] Document what is the expected metric for the size of ↵Quentin Colombet2016-04-061-2/+2
| | | | | | generic registers llvm-svn: 265561
* Reduce code duplication in ProcessGDBRemotePavel Labath2016-04-062-39/+20
| | | | | | | | | | | | | | | | Summary: SetThreadStopInfo was checking for a breakpoint at the current PC several times. This merges the identical code into a separate function. I've left one breakpoint check alone, as it was doing more complicated stuff, and it did not see a way to merge that without making the interface complicated. NFC. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18819 llvm-svn: 265560
* Revert r265450 "[X86] Reuse EFLAGS and form LOCKed ops when only user is SETCC."Hans Wennborg2016-04-062-81/+30
| | | | | | It caused ASan 32-bit tests to hang (PR27245). llvm-svn: 265559
* LoopUnroll: only allow non-modulo Partial unrolling when Runtime=trueFiona Glaser2016-04-062-3/+5
| | | | | | Patch by Evgeny Stupachenko <evstupac@gmail.com>. llvm-svn: 265558
* clang-format: Fix label-in-if statement in macros where it is actually used.Daniel Jasper2016-04-062-1/+9
| | | | | | | | | | | | | | | | Before: #define A \ if (a) \ label: \ f() After: #define A \ if (a) \ label: \ f() llvm-svn: 265557
* [RegisterBankInfo] Implement the verify method for the ValueMapping helper ↵Quentin Colombet2016-04-062-6/+18
| | | | | | | | | class. The method checks that the value is fully defined accross the different partial mappings and that the partial mappings are compatible between each other. llvm-svn: 265556
* [RegisterBankInfo] Add a verify method for the PartialMapping helper class.Quentin Colombet2016-04-062-0/+24
| | | | | | | This verifies that the PartialMapping can be accomadated into the related register bank. llvm-svn: 265555
* Revert "[AMDGPU] llvm-objdump: Minimal HSA Code Object disassembler support."Valery Pykhtin2016-04-062-116/+0
| | | | | | This reverts commit r265550. There're problems with endianness on dumping instruction bytes. Need to find out how to use support::ulittle32_t type properly. llvm-svn: 265554
* [RegisterBankInfo] Add a couple of helper classes for the future cost model.Quentin Colombet2016-04-062-0/+129
| | | | llvm-svn: 265553
* Revert "Re-commit r265039 "[X86] Merge adjacent stack adjustments in ↵Hans Wennborg2016-04-069-103/+32
| | | | | | | | | eliminateCallFramePseudoInstr (PR27140)"" It seems to be causing ASan tests to crash, probably due to miscompiling the run-time somehow. llvm-svn: 265551
* [AMDGPU] llvm-objdump: Minimal HSA Code Object disassembler support.Valery Pykhtin2016-04-062-0/+116
| | | | | | Differential revision: http://reviews.llvm.org/D16998 llvm-svn: 265550
OpenPOWER on IntegriCloud