- Dec 07, 2017
-
-
Bill Seurer authored
In more recent Linux kernels with 47 bit VMAs the layout of virtual memory for powerpc64 changed causing the address sanitizer to not work properly. This patch adds support for 47 bit VMA kernels for powerpc64 and fixes up test cases. https://reviews.llvm.org/D40907 There is an associated patch for compiler-rt. Tested on several 4.x and 3.x kernel releases. llvm-svn: 320109
-
Zachary Turner authored
Previously, when linking against libcmt from the MSVC runtime, lld-link /verbose would show "Ignoring unknown symbol record with kind 0x1006". It turns out this was because TypeIndexDiscovery did not handle S_REGISTER records, so these records were not getting properly remapped. Patch by: Alexnadre Ganea Differential Revision: https://reviews.llvm.org/D40919 llvm-svn: 320108
-
Alina Sbirlea authored
Summary: Make enum ModRefInfo an enum class. Changes to ModRefInfo values should be done using inline wrappers. This should prevent future bit-wise opearations from being added, which can be more error-prone. Reviewers: sanjoy, dberlin, hfinkel, george.burgess.iv Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D40933 llvm-svn: 320107
-
Eric Christopher authored
It is causing sanitizer failures on llvm tests in a bootstrapped compiler. No bot link since it's currently down, but following up to get the bot up. This reverts commit r319218. llvm-svn: 320106
-
Xinliang David Li authored
Differential Revision: http://reviews.llvm.org/D40873 llvm-svn: 320104
-
Jessica Paquette authored
The offset overflow check before was incorrect. It would always give the correct result, but it was comparing the SCALED potential fixed-up offset against an UNSCALED minimum/maximum. As a result, the outliner was missing a bunch of frame setup/destroy instructions that ought to have been safe to outline. This fixes that, and adds an instruction to the .mir test that failed the old test. llvm-svn: 320090
-
Mark Searles authored
Differential Revision: https://reviews.llvm.org/D40981 llvm-svn: 320087
-
Mark Searles authored
Patch caused a buildbot failure; http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/15733/steps/build_Lld/logs/stdio : lib/Target/AMDGPU/SIInsertWaitcnts.cpp:396:11: error: private field 'InstCnt' is not used [-Werror,-Wunused-private-field] int32_t InstCnt = 0; ^ 1 error generated. " This reverts commit 71627f79010aafe74fdcba901bba28dd7caa0869. llvm-svn: 320086
-
Mark Searles authored
-amdgpu-waitcnt-forcezero={1|0} Force all waitcnt instrs to be emitted as s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -amdgpu-waitcnt-forceexp=<n> Force emit a s_waitcnt expcnt(0) before the first <n> instrs -amdgpu-waitcnt-forcelgkm=<n> Force emit a s_waitcnt lgkmcnt(0) before the first <n> instrs -amdgpu-waitcnt-forcevm=<n> Force emit a s_waitcnt vmcnt(0) before the first <n> instrs Differential Revision: https://reviews.llvm.org/D40091 llvm-svn: 320084
-
Mark Searles authored
[AMDGPU] Add GCNHazardRecognizer::checkInlineAsmHazards() and GCNHazardRecognizer::checkVALUHazardsHelper(). checkInlineAsmHazards() checks INLINEASM for hazards that we particularly care about (so not exhaustive); this patch adds a check for INLINEASM that defs vregs that hold data-to-be stored by immediately preceding store of more than 8 bytes. If the instr were not within an INLINEASM, this scenario would be handled by checkVALUHazard(). Add checkVALUHazardsHelper(), which will be called by both checkVALUHazards() and checkInlineAsmHazards(). Differential Revision: https://reviews.llvm.org/D40098 llvm-svn: 320083
-
Craig Topper authored
[X86] Fix InsertBitToMaskVector to only issue KSHIFTS of native size so that upper bits are properly zeroed. There's no v2i1 or v4i1 kshift, and v8i1 is only supported with AVXDQ. Isel has fake patterns to extend these types to native shifts, but makes no guarantees about the value of any bits shifted in when shifting right. This patch promotes the vector to a type that supports a native shift first and only allows inserting into the msb of a native sized shift. I've constructed this in a way that doesn't do the promotion if we're going to fallback to using a xmm/ymm/zmm shuffle. I think I have a plan to remove the shuffle fall back entirely. In which case we this can be simplified, but I wanted to fix the correctness issue first. llvm-svn: 320081
-
Craig Topper authored
llvm-svn: 320080
-
Craig Topper authored
llvm-svn: 320079
-
Sanjay Patel authored
llvm-svn: 320068
-
Simon Pilgrim authored
llvm-svn: 320065
-
Simon Pilgrim authored
Put these under UNARY/BINOP ALU itinerary classes for now - seems to be a good average value llvm-svn: 320064
-
Krzysztof Parzyszek authored
Handle and, or, xor, add, sub, mul for vectors of i8, i16, and i32. llvm-svn: 320063
-
Simon Pilgrim authored
llvm-svn: 320062
-
Francis Visoiu Mistrih authored
llvm-svn: 320061
-
Craig Topper authored
llvm-svn: 320059
-
Davide Italiano authored
Should bring back the arm/arm64 bots. Reported by Yvan Roux. llvm-svn: 320057
-
Simon Pilgrim authored
Treat these the same as LAHF/SAHF (although its not a x86_64 instruction) llvm-svn: 320055
-
Simon Pilgrim authored
llvm-svn: 320054
-
Simon Pilgrim authored
Tagged all as system instructions llvm-svn: 320053
-
Simon Pilgrim authored
llvm-svn: 320052
-
Simon Pilgrim authored
Tagged as IMUL instructions for a reasonable approximation (ALU tends to be a lot faster) - POPCNT is currently tagged as FAdd which I think should be replaced with IMUL as well llvm-svn: 320051
-
Sanjay Patel authored
I noticed this pattern in D38316 / D38388. We failed to combine a shuffle that is either repeating a scalar insertion at the same position in a vector or translated to a different element index. Like the earlier patch, this could be an instcombine too, but since we opted to make this a DAG transform earlier, I've made this one a DAG patch too. We do not need any legality checking because the new insert is identical to the existing insert except that it may have a different constant insertion operand. The constant insertion test in test/CodeGen/X86/vector-shuffle-combining.ll was the motivation for D38756. Differential Revision: https://reviews.llvm.org/D40209 llvm-svn: 320050
-
Igor Laevsky authored
Differential Revision: https://reviews.llvm.org/D40390 llvm-svn: 320049
-
Simon Pilgrim authored
llvm-svn: 320048
-
Simon Pilgrim authored
Tagged all as system instructions llvm-svn: 320047
-
Francis Visoiu Mistrih authored
llvm-svn: 320046
-
Simon Pilgrim authored
llvm-svn: 320045
-
Simon Pilgrim authored
llvm-svn: 320044
-
Simon Pilgrim authored
llvm-svn: 320043
-
Simon Pilgrim authored
llvm-svn: 320042
-
Dan Gohman authored
WebAssembly requires caller and callee signatures to match, so the usual C runtime trick of calling main and having it just work regardless of whether main is defined as '()' or '(int argc, char *argv[])' doesn't work. Extend the FixFunctionBitcasts pass to rewrite main to use the latter form. llvm-svn: 320041
-
Simon Pilgrim authored
llvm-svn: 320040
-
Simon Pilgrim authored
llvm-svn: 320039
-
Alex Bradbury authored
Differential Revision: https://reviews.llvm.org/D40002 Patch by Shiva Chen. llvm-svn: 320038
-
Alex Bradbury authored
Differential Revision: https://reviews.llvm.org/D40001 Patch by Shiva Chen. llvm-svn: 320037
-