summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [DWARF] Shrink AttributeSpec from 24 to 16 bytes.Benjamin Kramer2017-09-212-20/+42
| | | | | | | This is a bit ugly because we can't put Optional into a union. Hide all of that behind a set of accessors and make accesses safer using asserts. llvm-svn: 313884
* [X86][SSE] Add PSHUFLW/PSHUFHW tests inspired by PR34686Simon Pilgrim2017-09-212-0/+96
| | | | llvm-svn: 313883
* [MIPS] Explicitly list supported relocations for MIPS target. NFCSimon Atanasyan2017-09-211-3/+26
| | | | | | | This is change is inspired by the D28611 patch. New supported relocations have been added to the switch statement. llvm-svn: 313882
* [ScopInfo] Use map for value def/PHI read accesses.Michael Kruse2017-09-213-10/+93
| | | | | | | | | | | | | | | | | | | | | | | Before this patch, ScopInfo::getValueDef(SAI) used getStmtFor(Instruction*) to find the MemoryAccess that writes a MemoryKind::Value. In cases where the value is synthesizable within the statement that defines, the instruction is not added to the statement's instruction list, which means getStmtFor() won't return anything. If the synthesiable instruction is not synthesiable in a different statement (due to being defined in a loop that and ScalarEvolution cannot derive its escape value), we still need a MemoryKind::Value and a write to it that makes it available in the other statements. Introduce a separate map for this purpose. This fixes MultiSource/Benchmarks/MallocBench/cfrac where -polly-simplify could not find the writing MemoryAccess for a use. The write was not marked as required and consequently was removed. Because this could in principle happen as well for PHI scalars, add such a map for PHI reads as well. llvm-svn: 313881
* [OPENMP] Use canonical declarations for redeclarations checks.Alexey Bataev2017-09-213-7/+10
| | | | | | | | | If the captured variable has some redeclarations we may run into the situation where the redeclaration is used instead of the canonical declaration and we may consider this variable as one not captured before. llvm-svn: 313880
* [mips] Implement generation of relocations "chains" used by N32 ABISimon Atanasyan2017-09-212-0/+39
| | | | | | | | | In case of using a "nested" relocation expressions like this `%hi(%neg(%gp_rel()))`, N32 ABI requires generation of three consecutive relocations. That differs from the N64 ABI case where all relocations are packed into the single relocation record. llvm-svn: 313879
* [mips] Do not pass redundant IsN64 flag to MCELFObjectTargetWriter. NFCSimon Atanasyan2017-09-214-17/+10
| | | | | | | | Now we pass the 'Is64_' flag to the MCELFObjectTargetWriter ctor iif when we make deal with N64 ABI. So it is redundant to pass additional 'IsN64' flag. llvm-svn: 313878
* [SystemZ] Improve optimizeCompareZero()Jonas Paulsson2017-09-212-7/+80
| | | | | | | | | | More conversions to load-and-test can be made with this patch by adding a forward search in optimizeCompareZero(). Review: Ulrich Weigand https://reviews.llvm.org/D38076 llvm-svn: 313877
* Revert r313825: "[IR] Add llvm.dbg.addr, a control-dependent version of ↵Daniel Jasper2017-09-2118-776/+134
| | | | | | | | | | | llvm.dbg.declare" .. as well as the two subsequent changes r313826 and r313875. This leads to segfaults in combination with ASAN. Will forward repro instructions to the original author (rnk). llvm-svn: 313876
* [SROA] Really remove associated dbg.declare when removing dead allocaMikael Holmen2017-09-213-8/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: There already was code that tried to remove the dbg.declare, but that code was placed after we had called I->replaceAllUsesWith(UndefValue::get(I->getType())); on the alloca, so when we searched for the relevant dbg.declare, we couldn't find it. Now we do the search before we call RAUW so there is a chance to find it. An existing testcase needed update due to this. Two dbg.declare with undef were removed and then suddenly one of the two CHECKS failed. Before this patch we got call void @llvm.dbg.declare(metadata i24* undef, metadata !14, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 24)), !dbg !15 call void @llvm.dbg.declare(metadata %struct.prog_src_register* undef, metadata !14, metadata !DIExpression()), !dbg !15 call void @llvm.dbg.value(metadata i32 0, metadata !14, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !15 call void @llvm.dbg.value(metadata i32 0, metadata !14, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 24)), !dbg !15 and with it we get call void @llvm.dbg.value(metadata i32 0, metadata !14, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !15 call void @llvm.dbg.value(metadata i32 0, metadata !14, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 24)), !dbg !15 However, the CHECKs in the testcase checked things in a silly order, so they only passed since they found things in the first dbg.declare. Now we changed the order of the checks and the test passes. Reviewers: rnk Reviewed By: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37900 llvm-svn: 313875
* [TableGen] Tidy up CodeGenRegistersJaved Absar2017-09-211-28/+23
| | | | | | | | | Replacing range loops. Reviewed by: @MatzeB Differential Revision: https://reviews.llvm.org/D38091 llvm-svn: 313874
* [mips] Fix relocation record format and ELF header for N32 ABISimon Atanasyan2017-09-2110-47/+188
| | | | | | | | | | | | | | | The N32 ABI uses RELA relocation format, do not use 3-in-1 relocation's encoding, and uses ELFCLASS32. This change passes the `IsN32` flag to the `MCAsmBackend` to distinguish usage of N32 ABI. We still do not handle some cases like providing the `-target-abi=o32` command line option with the `mips64` target triple. That's why elf_header.s contains some "FIXME" strings. This case will be fixed in a separate patch. Differential revision: https://reviews.llvm.org/D37960 llvm-svn: 313873
* [dsymutil] Don't resolve DIE reference to NULL DIE.Jonas Devlieghere2017-09-213-2/+47
| | | | | | | | | | | | | This patch prevents dsymutil from resolving a reference to a NULL DIE when a bogus reference happens to be coincidentally referencing a NULL DIE. Now this is detected as an invalid reference and a warning is printed. Fixes: https://bugs.llvm.org/show_bug.cgi?id=33873 Differential revision: https://reviews.llvm.org/D38078 llvm-svn: 313872
* [XRay][compiler-rt] Remove non-trivial globals from xray_log_interface.ccDean Michael Berris2017-09-211-6/+6
| | | | | | | | | | | | | | Summary: Remove dependency on std::unique_ptr<...> for the global representing the installed XRay implementation. Reviewers: dblaikie, kpw, pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38121 llvm-svn: 313871
* Fixed reverted commit rL312318Strahinja Petrovic2017-09-215-1/+152
| | | | | | | | | | This patch contains fix for reverted commit rL312318 which was causing failure due to use of unchecked dyn_cast to CIInit. Patch by: Nikola Prica. llvm-svn: 313870
* [X86] Adding a testpoint for fast-math flags propagation.Jatin Bhateja2017-09-211-0/+47
| | | | | | | | | | | | Reviewers: jbhateja Reviewed By: jbhateja Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38127 llvm-svn: 313869
* [yaml2obj] - Don't crash on one more invalid document.George Rimar2017-09-212-5/+13
| | | | | | | | | This fixes one more crash I faced. Testcase contains minimal reduced case. Differential revision: https://reviews.llvm.org/D38082 llvm-svn: 313868
* [analyzer] Fix an assertion fail in VirtualCallCheckerGabor Horvath2017-09-212-1/+22
| | | | | | Differential Revision: https://reviews.llvm.org/D37978 llvm-svn: 313866
* AMDGPU: Add option to stress callsMatt Arsenault2017-09-212-3/+49
| | | | | | | This inverts the behavior of the AlwaysInline pass to mark every function not already marked alwaysinline as noinline. llvm-svn: 313865
* [MIPS] Restore checking of the disassembler output. NFCSimon Atanasyan2017-09-211-36/+24
| | | | llvm-svn: 313864
* [X86] Remove execute permissions from a couple files.Craig Topper2017-09-212-0/+0
| | | | llvm-svn: 313863
* [X86] Remove windows line endings.Craig Topper2017-09-211-919/+919
| | | | llvm-svn: 313862
* [X86] Remove unused tablegen class.Craig Topper2017-09-211-7/+0
| | | | llvm-svn: 313861
* [TableGen] Use CHAR_BIT instead of hardcoded 8 with sizeof. NFCCraig Topper2017-09-211-1/+1
| | | | llvm-svn: 313860
* [TableGen] Include StringMap.h instead of StringSet.h since that's the data ↵Craig Topper2017-09-211-1/+1
| | | | | | structure we use. llvm-svn: 313859
* Revert r313782 "[TableGen] Add a DenseMapInfo for MachineValueType."Craig Topper2017-09-211-21/+0
| | | | | | We aren't making a DenseSet/DenseMap of MVT anywhere. This was added due to an earlier revision of D37957. llvm-svn: 313858
* Revert "Re-enable "[IRCE] Identify loops with latch comparison against ↵Serguei Katkov2017-09-212-296/+13
| | | | | | | | | | current IV value"" Revert the patch causing the functional failures. The patch owner is notified with test cases which fail. Test case has been provided to Maxim offline. llvm-svn: 313857
* Revert "Give external linkage and mangling to lambdas inside inline ↵Vitaly Buka2017-09-2110-117/+65
| | | | | | | | | | variables and variable templates." To fix: runtime error: load of value 15, which is not a valid value for type 'clang::LVComputationKind' This reverts commit r313827. llvm-svn: 313856
* [lit/Win] Check if a path was found before attempting to use it.David L. Jones2017-09-211-1/+2
| | | | | | | | | | | | | | Summary: This appears to break some bots, when getToolsPath fails to find some or all of the tools (for example, an incomplete GnuWin32 installation). Reviewers: zturner, modocache Subscribers: sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D38115 llvm-svn: 313854
* [llvm-cov] Improve error messaging for function mismatchesVedant Kumar2017-09-214-6/+43
| | | | | | | | | Passing "-dump" to llvm-cov will now print more detailed information about function hash and counter mismatches. This should make it easier to debug *.profdata files which contain incorrect records, and to debug other scenarios where coverage goes missing due to mismatch issues. llvm-svn: 313853
* AMDGPU: Fix crash on immediate operandMatt Arsenault2017-09-212-1/+63
| | | | | | | | We can have a v_mac with an immediate src0. We can still fold if it's an inline immediate, otherwise it already uses the constant bus. llvm-svn: 313852
* [ubsan] Split ubsan_init_standaloneVitaly Buka2017-09-214-38/+41
| | | | | | | | | | | | | | Summary: On Linux we may need preinit_array in static lib and ubsan_standalone_initializer in shared lib. Reviewers: eugenis Subscribers: kubamracek, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D38013 llvm-svn: 313851
* [AArch64] Properly check alignment for AARCH64_LD_PREL_LO19.Davide Italiano2017-09-212-0/+12
| | | | | | Follow-up suggested by Peter Smith. llvm-svn: 313850
* [lit] Make lit support config files with .py extension.Zachary Turner2017-09-2110-27/+72
| | | | | | | | | | | | | | | | | Many editors and Python-related diagnostics tools such as debuggers break or fail in mysterious ways when python files don't end in .py. This is especially true on Windows, but still exists on other platforms. I don't want to be too heavy handed in changing everything across the board, but I do want to at least *allow* lit configs to have .py extensions. This patch makes the discovery process first look for a config file with a .py extension, and if one is not found, then looks for a config file using the old method. So for existing users, there should be no functional change. Differential Revision: https://reviews.llvm.org/D37838 llvm-svn: 313849
* [X86] Replace a condition that can never be true with an assert.Craig Topper2017-09-211-2/+2
| | | | llvm-svn: 313848
* [SelectionDAG] Replace a flag that can never be true with an assert.Craig Topper2017-09-211-3/+2
| | | | llvm-svn: 313847
* [AArch64] Include test for out of range LD_PREL_LO19.Davide Italiano2017-09-211-0/+11
| | | | llvm-svn: 313846
* [asan] Remove trailing spacesVitaly Buka2017-09-211-2/+2
| | | | llvm-svn: 313845
* [asan] Remove "COLLISION" workaround for datarace in asanVitaly Buka2017-09-211-11/+8
| | | | | | | "nested bug in the same thread" is not expected in case like this and was caused by https://github.com/google/sanitizers/issues/858 llvm-svn: 313844
* [asan] Remove "rm -f" in tests where it was needed only because of >>Vitaly Buka2017-09-213-17/+12
| | | | llvm-svn: 313843
* Check whether IslAstInfo and DependenceInfo were computed for the same Scop.Michael Kruse2017-09-217-3/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | Since -polly-codegen reports itself to preserve DependenceInfo and IslAstInfo, we might get those analysis that were computed by a different ScopInfo for a different Scop structure. This would be unfortunate because DependenceInfo and IslAstInfo hold references to resources allocated by ScopInfo/ScopBuilder/Scop (e.g. isl_id). If -polly-codegen and DependenceInfo/IslAstInfo do not agree on which Scop to use, unpredictable things can happen. When the ScopInfo/Scop object is freed, there is a high probability that the new ScopInfo/Scop object will be created at the same heap position with the same address. Comparing whether the Scop or ScopInfo address is the expected therefore is unreliable. Instead, we compare the address of the isl_ctx object. Both, DependenceInfo and IslAstInfo must hold a reference to the isl_ctx object to ensure it is not freed before the destruction of those analyses which might happen after the destruction of the Scop/ScopInfo they refer to. Hence, the isl_ctx will not be freed and its address not reused as long there is a DependenceInfo or IslAstInfo around. This fixes llvm.org/PR34441 llvm-svn: 313842
* [AArch64] Implement R_AARCH64_ LD_PREL_LO19.Davide Italiano2017-09-204-0/+32
| | | | | | | | Fixes PR34660. Differential Revision: https://reviews.llvm.org/D38053 llvm-svn: 313841
* [InstCombine] Teach getDemandedBitsLHSMask to handle constant splat vectorsCraig Topper2017-09-202-16/+10
| | | | | | | | This replaces a ConstantInt dyn_cast with m_APInt Differential Revision: https://reviews.llvm.org/D38100 llvm-svn: 313840
* [SelectionDAG] Use APInt::getActivebits instead of Bitwidth - leading zeros.Craig Topper2017-09-201-1/+1
| | | | llvm-svn: 313839
* [WebAssembly] Weak symbols should be defined in SF_GlobalSam Clegg2017-09-202-2/+15
| | | | | | | | | | | | Summary: This manifested itself in lld since it meant that weak symbols were not appearing in archive symbol tables. Subscribers: jfb, dschuff, jgravelle-google, aheejin Differential Revision: https://reviews.llvm.org/D38111 llvm-svn: 313838
* typoAdrian Prantl2017-09-201-1/+1
| | | | llvm-svn: 313837
* llvm-dwarfdump: move -eh-frame into the right section in the help output.Adrian Prantl2017-09-202-1/+2
| | | | llvm-svn: 313836
* [asan] Fix nested error detectionVitaly Buka2017-09-202-53/+67
| | | | | | | | | | | | Summary: Fixes https://github.com/google/sanitizers/issues/858 Reviewers: eugenis, dvyukov Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D38019 llvm-svn: 313835
* [llvm-readobj] Fix 'Teach readobj to dump .res files', pt 3.Marek Sokolowski2017-09-201-1/+2
| | | | | | Fix (r313790) missing ulittle{}_t error on some buildbots. llvm-svn: 313834
* [llvm-readobj] Fix 'Teach readobj to dump .res files', pt 2.Marek Sokolowski2017-09-201-2/+5
| | | | | | | Another fix-up for r313790. Big-endian hosts swapped byte order in UTF16 words. llvm-svn: 313833
OpenPOWER on IntegriCloud