summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary extra linked file in RUN line. NFC.Pete Cooper2016-01-151-1/+1
| | | | | | | This test case was already suitably self-contained that linking against the helloworld file added no value. llvm-svn: 257954
* Check that the objc image info version is exactly 0Pete Cooper2016-01-152-0/+28
| | | | llvm-svn: 257953
* Re-disable suppressions.cpp on Windows.Nico Weber2016-01-151-0/+6
| | | | | | See discussion in http://reviews.llvm.org/D15363 llvm-svn: 257952
* [Orc] Replace switch cases with a macro.Lang Hames2016-01-151-62/+35
| | | | | | | | | The cases of this switch are all perfectly regular (except for the first case). A macro is more readable here. Thanks to Dave Blaikie for the suggestion. llvm-svn: 257951
* [opaque pointer types] Remove an unnecessary extra explicit value type in ↵David Blaikie2016-01-152-4/+4
| | | | | | | | Function Now that this is up in GlobalValue, just use the value there. llvm-svn: 257949
* [CMake] Fix bots broken by including order file generation in check-allChris Bieneman2016-01-151-0/+4
| | | | llvm-svn: 257948
* Avoid self-assignment of SmallString, trigger UB behavior down the road.Joerg Sonnenberger2016-01-151-3/+3
| | | | llvm-svn: 257947
* Fix TestDebugBreak.py.Zachary Turner2016-01-151-2/+3
| | | | | | | We can't assume that the main thread of an inferior has index 0, even in a single-threaded app. llvm-svn: 257946
* Fix ResourceWarning about unclosed file in use_lldb_suite_root.py.Zachary Turner2016-01-153-9/+18
| | | | llvm-svn: 257945
* ValueTracking: Put DataLayout reference into the Query structure, NFC.Matthias Braun2016-01-151-257/+250
| | | | | | | | | It looks nicer and improves the compiletime of a typical clang -O3 -emit-llvm run by ~0.6% for me. Differential Revision: http://reviews.llvm.org/D16205 llvm-svn: 257944
* [codeview] Handle multiple frame descriptions in readobjReid Kleckner2016-01-152-42/+36
| | | | llvm-svn: 257943
* Remove a now-empty file left behind by r257940.Dan Gohman2016-01-151-0/+0
| | | | llvm-svn: 257942
* [SelectionDAG] CSE nodes with differing SDNodeFlagsDan Gohman2016-01-154-42/+80
| | | | | | | | | | | | In the optimizer (GVN etc.) when eliminating redundant nodes with different flags, the flags are ignored for the purposes of testing for congruence, and then intersected for the purposes of producing a result that supports the union of all the uses. This commit makes SelectionDAG's CSE do the same thing, allowing it to CSE nodes in more cases. This fixes PR26063. Differential Revision: http://reviews.llvm.org/D15957 llvm-svn: 257940
* Make -Wdelete-non-virtual-dtor warn on explicit `a->~A()` dtor calls too.Nico Weber2016-01-155-28/+84
| | | | | | | | | | | | | | | | | | | | | | | -Wdelete-non-virtual-dtor warns if A is a type with virtual functions but without virtual dtor has its constructor called via `delete a`. This makes the warning also fire if the dtor is called via `a->~A()`. This would've found a security bug in Chromium at compile time. Fixes PR26137. To fix the warning, add a virtual destructor, make the class final, or remove its other virtual methods. If you want to silence the warning, there's also a fixit that shows how: test.cc:12:3: warning: destructor called on 'B' ... [-Wdelete-non-virtual-dtor] b->~B(); ^ test.cc:12:6: note: qualify call to silence this warning b->~B(); ^ B:: http://reviews.llvm.org/D16206 llvm-svn: 257939
* [analyzer] Check for return of nil in ObjC methods with nonnull return type.Devin Coughlin2016-01-152-20/+60
| | | | | | | | | | | | Update NullabilityChecker so that it checks return statements in ObjC methods. Previously it was returning early because methods do not have a function type. Also update detection of violated parameter _Nonnull preconditions to handle ObjC methods. rdar://problem/24200560 llvm-svn: 257938
* [Orc] Make FDRPCChannel final.Lang Hames2016-01-151-1/+1
| | | | | | This class is in the LLI tool, and isn't subclassed. llvm-svn: 257937
* [CMake] [Order-files] Use print_function as an attempt at being forward ↵Chris Bieneman2016-01-151-17/+19
| | | | | | | | compatible. Based on feedback from bogner. llvm-svn: 257936
* PM: Fix an inverted condition in simplifyFunctionCFGJustin Bogner2016-01-151-2/+1
| | | | | | | | | | | | I mentioned the issue here in code review way back in September and was sure we'd fixed it, but apparently we forgot: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20150921/301850.html In any case, as soon as you try to use this pass in anything but the most basic pipeline everything falls apart. Fix the condition. llvm-svn: 257935
* [CMake] Support generation of linker order files using dtraceChris Bieneman2016-01-154-22/+408
| | | | | | | | | | | | | | | | | | | Summary: This patch extends the lit-based perf-training tooling supplied for PGO data generation to also generate linker order files using dtrace. This patch should work on any system that has dtrace. If CMake can find the dtrace tool it will generate a target 'generate-order-file' which will run the per-training tests wrapped by dtrace to capture function entries. There are several algorithms implemented for sorting the order files which can be experimented with for best performance. The dtrace wrapper also supports bot oneshot and pid probes. The perf-helper.py changes to support order file construction are ported from internal changes by ddunbar; he gets all the credit for the hard work here, I just copy and pasted. Note: I've tested these patches on FreeBSD and OS X 10.10. Reviewers: ddunbar, bogner, silvas Subscribers: llvm-commits, emaste Differential Revision: http://reviews.llvm.org/D16134 llvm-svn: 257934
* [WinEH] Rename CatchReturnInst::getParentPad, NFCJoseph Tremoulet2016-01-154-5/+7
| | | | | | | | | | | | | | | | Summary: Rename to getCatchSwitchParentPad, to make it more clear which ancestor the "parent" in question is. Add a comment pointing out the key feature that the returned pad indicates which funclet contains the successor block. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16222 llvm-svn: 257933
* [Orc] Remove some reinterpret casts in debugging output.Lang Hames2016-01-151-6/+4
| | | | | | | | | These casts were from function pointer to data pointer type, which some compilers (including GCC) may warn about. In all cases where these casts were used the original value was still available as a TargetAddress (uint64_t), so we can just print a formatted version of that instead. llvm-svn: 257932
* Small fixes to ensure TestLogging.py tests work with Python 3.5 as well as 2.7.Adrian McCarthy2016-01-151-3/+3
| | | | llvm-svn: 257931
* CXX_FAST_TLS calling convention: fix issue on ARM.Manman Ren2016-01-152-4/+16
| | | | | | | | | | When we have a single basic block, the explicit copy-back instructions should be inserted right before the terminator. Before this fix, they were wrongly placed at the beginning of the basic block. PR26136 llvm-svn: 257930
* CXX_FAST_TLS calling convention: fix issue on AArch64.Manman Ren2016-01-152-4/+32
| | | | | | | | | | | | When we have a single basic block, the explicit copy-back instructions should be inserted right before the terminator. Before this fix, they were wrongly placed at the beginning of the basic block. I will commit fixes to other platforms as well. PR26136 llvm-svn: 257929
* [Orc] Add a void cast to work around a GCC diagnostic bug.Lang Hames2016-01-151-0/+4
| | | | llvm-svn: 257927
* Implement missing GoASTContext methodsRyan Brown2016-01-151-6/+145
| | | | llvm-svn: 257926
* CXX_FAST_TLS calling convention: fix issue on X86-64.Manman Ren2016-01-152-4/+20
| | | | | | | | | | | | When we have a single basic block, the explicit copy-back instructions should be inserted right before the terminator. Before this fix, they were wrongly placed at the beginning of the basic block. I will commit fixes to other platforms as well. PR26136 llvm-svn: 257925
* Fix -Wmismatched-tags warning/errorXinliang David Li2016-01-151-1/+2
| | | | llvm-svn: 257924
* Codegen: [PPC] Silence false-positive initialization warning. NFCKyle Butt2016-01-151-2/+2
| | | | | | | | | | Some compilers don't do exhaustive switch checking. For those compilers, add an initialization to prevent un-initialized variable warnings from firing. For compilers with exhaustive switch checking, we still get a guarantee that the switch is exhaustive, and hence the initializations are redundant, and a non-functional change. llvm-svn: 257923
* [PGO] Commonize (more) index profile file and buffer writer.Xinliang David Li2016-01-152-34/+72
| | | | | | | | | | | | | | | | The file and buffer writer code are mostly shared except for the stream back-patching. This is because raw_string_ostream does not support seek like interface. The result is that the data patching code needs to be pushed to the caller which is not quite readable (passing around offset, value etc). This also makes future enhancement (which needs more patching) more difficult (and can make impl messy). In this patch, two types of streams needed by the writer are now unified with same set of interfaces under ProfOStream class. The patch method is added so that common implementation becomes cleaner. It also enables future enhancement. Should be NFC. llvm-svn: 257921
* Bring back "Assert that we have all use/users in the getters."Rafael Espindola2016-01-157-24/+103
| | | | | | | | | | | | | | | | | | | | | | This reverts commit r257751, bringing back r256105. The problem the assert found was fixed in r257915. Original commit message: Assert that we have all use/users in the getters. An error that is pretty easy to make is to use the lazy bitcode reader and then do something like if (V.use_empty()) The problem is that uses in unmaterialized functions are not accounted for. This patch adds asserts that all uses are known. llvm-svn: 257920
* Revert "[ARM] Add ARMv8-M security extension instructions to ARMv8-M ↵Reid Kleckner2016-01-159-187/+3
| | | | | | | | | | Baseline/Mainline" This reverts commit r257883. Somehow this didn't make it into r257916. llvm-svn: 257919
* Reapply r257800 with fixMatthew Simpson2016-01-153-42/+597
| | | | | | | | | | | | | | | | | | | The fix uniques the bundle of getelementptr indices we are about to vectorize since it's possible for the same index to be used by multiple instructions. The original commit message is below. [SLP] Vectorize the index computations of getelementptr instructions. This patch seeds the SLP vectorizer with getelementptr indices. The primary motivation in doing so is to vectorize gather-like idioms beginning with consecutive loads (e.g., g[a[0] - b[0]] + g[a[1] - b[1]] + ...). While these cases could be vectorized with a top-down phase, seeding the existing bottom-up phase with the index computations avoids the complexity, compile-time, and phase ordering issues associated with a full top-down pass. Only bundles of single-index getelementptrs with non-constant differences are considered for vectorization. llvm-svn: 257918
* Add OpenMP dist_schedule clause to distribute directive and related ↵Carlo Bertolli2016-01-1517-2/+488
| | | | | | regression tests. llvm-svn: 257917
* # This is a combination of 2 commits.Reid Kleckner2016-01-1519-603/+11
| | | | | | | | | | | | | | | | # The first commit's message is: Revert "[ARM] Add DSP build attribute and extension targeting" This reverts commit b11cc50c0b4a7c8cdb628abc50b7dc226ff583dc. # This is the 2nd commit message: Revert "[ARM] Add new system registers to ARMv8-M Baseline/Mainline" This reverts commit 837d08454e3e5beb8581951ac26b22fa07df3cd5. llvm-svn: 257916
* Don't try to check all uses if lazy loading.Rafael Espindola2016-01-152-0/+16
| | | | | | | | | | | This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set in a few cases. This should have no impact in ld64 since it doesn't use lazy loading when merging modules and that is when it checks LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN. llvm-svn: 257915
* Recommit r257912George Rimar2016-01-154-17/+61
| | | | | | | | | | | | | | Added forgotten ELFDumper.cpp to commit. Initial commit message: [llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj. If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries. They were unknown for llvm-readobj before this patch. Differential revision: http://reviews.llvm.org/D16224 llvm-svn: 257914
* Revert r257912 - forgot to commit one file.George Rimar2016-01-153-53/+11
| | | | | | | | | | | | | | | | Initial commit message: [llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj. If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries. They were unknown for llvm-readobj before this patch. Differential revision: http://reviews.llvm.org/D16224 ---- Added : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table-so.aarch64 Modified : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table.c Modified : /llvm/trunk/test/tools/llvm-readobj/dynamic.test llvm-svn: 257913
* [llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section ↵George Rimar2016-01-153-11/+53
| | | | | | | | | | | tags to the llvm-readobj. If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries. They were unknown for llvm-readobj before this patch. Differential revision: http://reviews.llvm.org/D16224 llvm-svn: 257912
* [Support/ELF] - Added DT_TLSDESC_PLT and DT_TLSDESC_GOT constants.George Rimar2016-01-151-0/+2
| | | | | | | | | | | | | | Added 2 constants: DT_TLSDESC_PLT = 0x6FFFFEF6, Location of PLT entry for TLS descriptor resolver calls. DT_TLSDESC_GOT = 0x6FFFFEF7, Location of GOT entry used by TLS descriptor resolver PLT entry. Constants were taken from "Thread-Local Storage Descriptors for IA32 and AMD64/EM64T Version 0.9.5" http://www.fsfla.org/~lxoliva/writeups/TLS/RFC-TLSDESC-x86.txt Differential revision: http://reviews.llvm.org/D16185 llvm-svn: 257911
* [codeview] Dump the file checksum substreamReid Kleckner2016-01-152-0/+52
| | | | llvm-svn: 257910
* [CMake] Need to install VersionFromVCS.cmake as part of LLVM's CMake modulesChris Bieneman2016-01-151-1/+0
| | | | | | This is required to support clang --version detecting the clang repository information. llvm-svn: 257909
* Add the GC commandline options and throw errors if they are usedPete Cooper2016-01-155-0/+67
| | | | llvm-svn: 257907
* Remove out of bounds reloc from reduced file.Pete Cooper2016-01-151-4/+0
| | | | | | | | | | | | This file was failing to build with asan enabled. The reason being that applyFixupFinal was writing 4-bytes worth of fixup in to an atom only a single byte in length. The test case didn't actually need this particular reloc so i've removed it, although i'll follow up with future commits to actually verify that relocs are to an address with enough space for the fixup to be applied. llvm-svn: 257906
* test-release.sh: Fix clang-tools-extra symlink for CMake buildHans Wennborg2016-01-151-3/+13
| | | | | | The CMake and Autoconf builds want the symlink set up differently. llvm-svn: 257905
* Do not check JSON alignment of scalar accessesMichael Kruse2016-01-151-26/+28
| | | | | | | | | | | | | | | When importing a schedule, do not verify the load/store alignment of scalar accesses. Scalar loads/store are always created newly in code generation with no alignment restrictions. Previously, scalar alignment was checked if the access instruction happened to be a LoadInst or StoreInst, but only its array (MK_Array) access is relevant. This will be implicitly unit-tested when the access instruction of a value read can be nullptr. Differential Revision: http://reviews.llvm.org/D15680 llvm-svn: 257904
* Add a test showing when ld64 can hide linkonce_odr symbols.Rafael Espindola2016-01-151-0/+30
| | | | llvm-svn: 257903
* Stop increasing alignment of externally-visible globals on ELFJames Y Knight2016-01-155-25/+78
| | | | | | | | | | | | | | | | | | | | | platforms. With ELF, the alignment of a global variable in a shared library will get copied into an executables linked against it, if the executable even accesss the variable. So, it's not possible to implicitly increase alignment based on access patterns, or you'll break existing binaries. This happened to affect libc++'s std::cout symbol, for example. See thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311 (This is a re-commit of r257719, without the bug reported in PR26144. I've tweaked the code to not assert-fail in enforceKnownAlignment when computeKnownBits doesn't recurse far enough to find the underlying Alloca/GlobalObject value.) Differential Revision: http://reviews.llvm.org/D16145 llvm-svn: 257902
* Fix decoration of TestConcurrentEventsPavel Labath2016-01-151-1/+35
| | | | | | | | | | TestConcurrentEvents was marked with a XFAIL decorator at class level, which actually does not work, and causes the class to be silently skipped everywhere. It seems that making it work at class level is quite a difficult task, so I will just move it to the individual test methods. I will follow this up with a commit which makes the decorator blow up in case someone tries to apply it to a class in the future. llvm-svn: 257901
* [clang-tidy] Fix a copy-paste error.Alexander Kornienko2016-01-151-1/+1
| | | | llvm-svn: 257900
OpenPOWER on IntegriCloud