Commit Graph

163445 Commits

Author SHA1 Message Date
Simon Dardis
2d93770624 [mips] Correct the patterns for bswap
Guard the MIPS64 variant correctly for i64, mark the MIPS32 version as not
in microMIPS and provide the microMIPS version.

Additionally, remove a related stale XFAIL'd test as bswap has its own test
case providing coverage.

Reviewers: smaksimovic, abeserminji, atanasyan

Differential Revision: https://reviews.llvm.org/D45816


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330705 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 10:19:29 +00:00
Andrea Di Biagio
97ee2baf09 [llvm-mca][CommandGuide] Fix typo in example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330703 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 10:09:32 +00:00
Andrei Elovikov
cefae4fb96 [CodeGen] Do not allow opt-bisect-limit to skip ScalarizeMaskedMemIntrin.
Summary:
The pass is supposed to scalarize such intrinsics if the target does not support
them natively, so if the scalarization does not happen instruction selection
crashes due to inability to lower these intrinsics.

Reviewers: andrew.w.kaylor, craig.topper

Reviewed By: andrew.w.kaylor

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45947

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330700 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 09:24:29 +00:00
Max Kazantsev
da589ee06a [NFC] Remove recently added SE verification because it may be false-positive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330699 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 09:11:01 +00:00
Florian Hahn
0c47f856a1 [LoopInfo] Verify BBMap tracks innermost loops for BBs.
By checking that none of the child loops contain a BB we make sure BBMap
contains the innermost loop defining BB. This invariant was violated in
LoopInterchange and got caught by this assertion.

Reviewers: chandlerc, mzolotukhin, sanjoy, mehdi_amini, efriedma

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D45971


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330698 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 09:10:05 +00:00
Sander de Smalen
903ed71cb9 [AArch64][SVE] Asm: Support for contiguous, first-faulting LDFF1 (scalar+scalar) load instructions.
Reviewers: fhahn, rengolin, samparker, SjoerdMeijer, t.p.northover, echristo, evandro, javed.absar

Reviewed By: rengolin

Subscribers: tschuett, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D45946

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330697 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 08:59:08 +00:00
Roman Lebedev
c3aaa9b38e Link to AggressiveInstCombine in a few places. Unbreaks build for me.
/usr/local/bin/ld.lld: error: undefined symbol: llvm::createAggressiveInstCombinerPass()
>>> referenced by cc1_main.cpp
>>>               tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o:(_GLOBAL__sub_I_cc1_main.cpp)

And so on

The bot coverage is clearly missing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330693 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 08:40:37 +00:00
Pavel Labath
a92eb5b1f3 [Support/Path] Add more tests and improve failure messages of existing ones
Summary:
I am preparing a patch to the path function. While working on it, I
noticed that some of the areas are lacking test coverage (e.g. filename
and parent_path functions), so I add more tests to guard against
regressions there.

I have also found the failure messages hard to understand, so I rewrote
some existing test to give more actionable messages when they fail:
- for tests which run over multiple inputs, I use SCOPED_TRACE, to show
  which of the inputs caused the actual failure.
- for comparisons of vectors, I use gmock's container matchers, which
  will print out the full container contents (and the elements that
  differ) when they fail to match.

Reviewers: zturner, espindola

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45941

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330691 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 08:29:20 +00:00
Xin Tong
d5a2fd47b6 [LVI] Fix typo. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330688 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 07:38:07 +00:00
Alexander Shaposhnikov
7f71e97394 [llvm-objcopy] Adjust the code for the old versions of msvc
Follow-up for r330685.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330686 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 06:23:22 +00:00
Alexander Shaposhnikov
ae1ca02d14 Recommit "[llvm-objcopy] Switch over to using TableGen for parsing arguments"
Add explicit dependency on ObjcopyTableGen 
and rerun the tests on Windows. 
I will double-check the build bots 
and revert this commit if necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330685 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 05:43:32 +00:00
Max Kazantsev
3c8c5ef2e4 [NFC] Use FileCheck in test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330684 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 04:42:37 +00:00
Max Kazantsev
9d4b43cf24 [NFC] Use forgetTopmostLoop instead of logic duplication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330683 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 04:33:04 +00:00
Craig Topper
1e1ca09b35 [X86] Add a BSWAP16 instruction using the 32-bit encoding plus a 0x66 prefix.
This encoding is recognized by the CPU, but the behavior is undefined. This makes the disassembler handle it correctly so we don't print bswapl with a 16-bit register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330682 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 04:28:02 +00:00
Chandler Carruth
eceadea770 [PM/LoopUnswitch] Remove another over-aggressive assert.
This code path can very clearly be called in a context where we have
baselined all the cloned blocks to a particular loop and are trying to
handle nested subloops. There is no harm in this, so just relax the
assert. I've added a test case that will make sure we actually exercise
this code path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330680 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 03:27:00 +00:00
Eric Christopher
903870a8da Remove unused function HexagonEarlyIfConversion::replacePhiEdges. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330678 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 02:10:59 +00:00
Max Kazantsev
76f6bf2a28 [NFC] Add clarification comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330677 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 02:08:05 +00:00
Eric Christopher
0a219a22e1 Reflow formatting after previous NFC commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330676 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 01:57:03 +00:00
Eric Christopher
5bef44a156 Change if-conditionals to else-if as they should all be mutually exclusive.
No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330675 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 01:57:02 +00:00
Nico Weber
3eb9432cd2 Mostly revert r330672.
The test is apparently needed e.g. for check-cfi on Windows where we get
  'C:/b/slave/sanitizer-windows/build/./bin/clang.exe': command not found
without it.  Try to fix the problem that was fixed by r330672 by also checking
for isabs() instead.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330673 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 01:24:42 +00:00
Nico Weber
bdd8ac7826 Remove code that's almost always dead, and harmful if not.
lit's util.which() would check if the passed-in path existed directly,
and if so return it as-is.  This is never the case when running llvm's, clang's,
or lld's tests normally.  But when running `./llvm-lit path/to/clang/test`
with a cwd of llvm-build/bin, this if would detect that clang exists at path
'clang' and return 'clang' as the discovered clang binary -- and then lit would
use the " clang " -> "*** Do not use 'clang' in tests, use '%clang'. ***"
substitution to replace that with a broken test.  By removing this early
return, lit ends up with the usual absolute path and everything works even
in this uncommon case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330672 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 01:05:04 +00:00
David Blaikie
1f03921510 Fix build breaks in examples due to moving stuff from Scalar.h to InstCombine.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330670 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:58:57 +00:00
David Blaikie
b5b7fce64c InstCombine: Fix layering by not including Scalar.h in InstCombine
(notionally Scalar.h is part of libLLVMScalarOpts, so it shouldn't be
included by InstCombine which doesn't/shouldn't need to depend on
ScalarOpts)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330669 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:48:59 +00:00
Craig Topper
f7d7c68c75 [AggressiveInstCombine] Add aggressive inst combiner to the LLVM C API.
I just tried to copy what was done for regular InstCombine. Hopefully I didn't miss anything.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330668 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:39:29 +00:00
George Burgess IV
557491f34d Reland r301880(!): "[InstSimplify] Handle selects of GEPs with 0 offset"
I was reminded today that this patch got reverted in r301885. I can no
longer reproduce the failure that caused the revert locally (...almost
one year later), and the patch applied pretty cleanly, so I guess we'll
see if the bots still get angry about it.

The original breakage was InstSimplify complaining (in "assertion
failed" form) about getting passed some crazy IR when running `ninja
check-sanitizer`. I'm unable to find traces of what, exactly, said crazy
IR was. I suppose we'll find out pretty soon if that's still the case.
:)

Original commit:

  Author: gbiv
  Date: Mon May  1 18:12:08 2017
  New Revision: 301880

  URL: http://llvm.org/viewvc/llvm-project?rev=301880&view=rev
  Log:
  [InstSimplify] Handle selects of GEPs with 0 offset

  In particular (since it wouldn't fit nicely in the summary):
  (select (icmp eq V 0) P (getelementptr P V)) -> (getelementptr P V)

  Differential Revision: https://reviews.llvm.org/D31435



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330667 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:25:01 +00:00
Alex Shlyapnikov
a6786e9cb2 [HWASan] Use dynamic shadow memory on Android only (LLVM)
There're issues with IFUNC support on other platforms.

DIfferential Revision: https://reviews.llvm.org/D45840

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330665 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:16:54 +00:00
Craig Topper
6f6553e0da [AggressiveInstCombine] Add createAggressiveInstCombinerPass to LinkAllPasses.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330664 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:11:04 +00:00
Craig Topper
043b23526d [AggressiveInstCombine] Add library initializer routine for AggressiveInstCombine library. Use it in bugpoint and llvm-opt-fuzzer to match regular InstCombine.
This should make aggressive instcombine usable with these tools.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330663 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-24 00:05:21 +00:00
Simon Pilgrim
19c6b95399 [X86] Remove unnecessary vector memory folded InstRW overrides.
We have test coverage for these with resources-sse*/avx*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330662 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 22:45:04 +00:00
Robert Widmann
bffba319b2 [LLVM-C] DIBuilder Bindings For Variable Expressions
Summary: Add DIBuilder bindings for (global) variable expressions, variable value expressions, and debug value intrinsic insertion.

Reviewers: harlanhaskins, deadalnix, whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45979

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330661 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 22:31:49 +00:00
Roman Tereshin
e55b052e03 [GlobalISel][Legalizer] Look thro copies while combining G_UNMERGE's
As we're becoming stricter w/ respect to not allowing vregs having LLTs
and regclasses assigned both mid-globalisel pipeline, the number of
extra copies grows, some of which separate G_UNMERGE's from their
corresponding G_MERGE's, becoming a performance concern.

It's worth mentioning that we're already looking through copies while
combining legalization artifacts for every kind of artifact but
G_UNMERGE.

Reviewed By: aditya_nandakumar

Reviewers: ab, t.p.northover, volkan, javed.absar

Subscribers: rovka, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D45644


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330660 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 22:28:36 +00:00
Simon Pilgrim
b344f5ad32 [X86] Remove unnecessary BMI2 InstRW overrides.
We have test coverage for these with resources-bmi2.s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330659 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 22:19:55 +00:00
Florian Hahn
99abef011d [LoopInterchange] Do not change LI for BBs in child loops.
If a loop with child loops becomes our new inner loop after
interchanging, we only need to update LoopInfo for the blocks defined in
the old outer loop. BBs in child loops will stay there.

Reviewers: efriedma, karthikthecool, mcrosier

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D45970


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330653 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 21:38:19 +00:00
Simon Pilgrim
0597a75372 [X86] Remove unnecessary WriteLEA InstRW overrides.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330648 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 21:04:23 +00:00
Roman Lebedev
04273076b9 [DAGCombiner] Unfold scalar masked merge if profitable
Summary:
This is [[ https://bugs.llvm.org/show_bug.cgi?id=37104 | PR37104 ]].

[[ https://bugs.llvm.org/show_bug.cgi?id=6773 | PR6773 ]] will introduce an IR canonicalization that is likely bad for the end assembly.
Previously, `andl`+`andn`/`andps`+`andnps` / `bic`/`bsl` would be generated. (see `@out`)
Now, they would no longer be generated  (see `@in`).
So we need to make sure that they are still generated.

If the mask is constant, we do nothing. InstCombine should have unfolded it.
Else, i use `hasAndNot()` TLI hook.

For now, only handle scalars.

https://rise4fun.com/Alive/bO6

----

I *really* don't like the code i wrote in `DAGCombiner::unfoldMaskedMerge()`.
It is super fragile. Is there something like IR Pattern Matchers for this?

Reviewers: spatel, craig.topper, RKSimon, javed.absar

Reviewed By: spatel

Subscribers: andreadb, courbet, kristof.beyls, javed.absar, rengolin, nemanjai, llvm-commits

Differential Revision: https://reviews.llvm.org/D45733

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330646 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:38:49 +00:00
Roman Lebedev
ee05cadf69 [X86][AArch64][NFC] Add tests for masked merge unfolding
Summary:
This is [[ https://bugs.llvm.org/show_bug.cgi?id=37104 | PR37104 ]].

[[ https://bugs.llvm.org/show_bug.cgi?id=6773 | PR6773 ]] will introduce an IR canonicalization that is likely bad for the end assembly.
Previously, `andl`+`andn`/`andps`+`andnps` / `bic`/`bsl` would be generated. (see `@out`)
Now, they would no longer be generated  (see `@in`).
I'm guessing `llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp` should be able to unfold this.

Reviewers: spatel, craig.topper, RKSimon, javed.absar

Reviewed By: spatel

Subscribers: nemanjai, rengolin, javed.absar, kristof.beyls, llvm-commits

Differential Revision: https://reviews.llvm.org/D45563

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330645 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:38:42 +00:00
Sanjay Patel
b309972602 [AggressiveInstCombine] add tests for PR37098; NFC
I'm not sure if this is where we should try to fold these
patterns inspired by:
https://bugs.llvm.org/show_bug.cgi?id=37098
...if this isn't the right place, we can move the tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330642 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:20:32 +00:00
Xin Tong
7f02d6427a [CallSiteSplit] Make sure we remove nonnull if the parameter turns out to be a constant.
Summary: We do not need nonull attribute if we know an argument is going to be constant.

Reviewers: junbuml, davide, fhahn

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D45608

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330641 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:09:08 +00:00
Gabor Buella
4dd24c474b [X86] Revert r330638 - accidental commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330640 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:05:51 +00:00
George Burgess IV
17e9db0c42 Fix a broken typedef; NFCI
Richard Smith noted that `typedef typename iplist::iplist_impl_type
iplist_impl_type` is incorrect, per
http://eel.is/c++draft/basic.scope#class-2

It seems that neither clang nor gcc get too angry about this, but a
newer version of msvc does.

Thanks to jcmac on IRC for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330639 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:03:00 +00:00
Gabor Buella
abc9d03bfc [X86] movdiri and movdir64b instructions
Reviewers: craig.topper


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330638 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 20:00:59 +00:00
Bjorn Pettersson
dee6650968 [MemCpyOpt] Skip optimizing basic blocks not reachable from entry
Summary:
Skip basic blocks not reachable from the entry node
in MemCpyOptPass::iterateOnFunction.

Code that is unreachable may have properties that do not exist
for reachable code (an instruction in a basic block can for
example be dominated by a later instruction in the same basic
block, for example if there is a single block loop).
MemCpyOptPass::processStore is only safe to use for reachable
basic blocks, since it may iterate past the basic block
beginning when used for unreachable blocks. By simply skipping
to optimize unreachable basic blocks we can avoid asserts such
as "Assertion `!NodePtr->isKnownSentinel()' failed."
in MemCpyOptPass::processStore.

The problem was detected by fuzz tests.

Reviewers: eli.friedman, dneilson, efriedma

Reviewed By: efriedma

Subscribers: efriedma, llvm-commits

Differential Revision: https://reviews.llvm.org/D45889

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330635 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 19:55:04 +00:00
Sam Clegg
3f46946fed [WebAssembly] MC: Refactor section creation code
Remove the use of default argument in favor of a separate
startCustomSection method.

Differential Revision: https://reviews.llvm.org/D45794

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330632 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 19:16:19 +00:00
Quentin Colombet
f48113f0d5 [CODE_OWNERS] Update my email address.
NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330631 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 19:09:49 +00:00
Peter Collingbourne
cebbb7c075 Reland r329956, "AArch64: Introduce a DAG combine for folding offsets into addresses.", with a fix for the bot failure.
This reland includes a check to prevent the DAG combiner from folding an
offset that is smaller than the existing one. This can cause oscillations
between two possible DAGs, which was the cause of the hang and later assertion
failure observed on the lnt-ctmark-aarch64-O3-flto bot.
http://green.lab.llvm.org/green/job/lnt-ctmark-aarch64-O3-flto/2024/

Original commit message:
> This is a code size win in code that takes offseted addresses
> frequently, such as C++ constructors that typically need to compute
> an offseted address of a vtable. This reduces the size of Chromium
> for Android's .text section by 108KB.

Differential Revision: https://reviews.llvm.org/D45199

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330630 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 19:09:34 +00:00
Daniel Neilson
6c92ba3e0b [DSE] Teach the pass that atomic memory intrinsics are stores.
Summary:
This change teaches DSE that the atomic memory intrinsics are stores
that can be eliminated, and can allow other stores to be eliminated.
This change specifically does not teach DSE that these intrinsics
can be partially eliminated (i.e. length reduced, and dest/src changed);
that will be handled in another change.

Reviewers: mkazantsev, skatkov, apilipenko, efriedma, rsmith

Reviewed By: efriedma

Subscribers: dmgreen, llvm-commits

Differential Revision: https://reviews.llvm.org/D45535

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330629 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 19:06:49 +00:00
Matthew Simpson
871b8fe06d [AArch64] Add cost model test case for transpose
This patch adds a cost model test case for vector shuffles having transpose
masks. The given costs are inaccurate and will be updated in a follow-on patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330625 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 18:21:29 +00:00
Alex Shlyapnikov
b6ec859b6c [HWASan] Switch back to fixed shadow mapping for x86-64
For now switch back to fixed shadow mapping for x86-64 due to the issues
with IFUNC linking on older binutils. More details will be added to
https://bugs.chromium.org/p/chromium/issues/detail?id=835864

Differential Revision: https://reviews.llvm.org/D45840

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330623 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 18:14:39 +00:00
Craig Topper
14d8c6dfc0 [X86] Add disassembler test cases for bswap.
This demonstrates a bug where the encoding for a 16-bit bswap prints a 16-bit register and a 32-bit mnemonic. Intel docs say 16-bit bswap is undefined. We should either claim it as an invalid encoding or we should print a 16-bit mnemonic.

objdump does print the encoding as bswap with a 16-bit register. But it doesn't seem to ever print a suffix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330621 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 17:47:33 +00:00
Vedant Kumar
aeb3e4fcbb [SelectionDAG] Dump debug locs in SDNodes
This helps debug issues where selection-dag assigns the wrong location
to an instruction.

Differential Revision: https://reviews.llvm.org/D45913

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330618 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-23 17:18:24 +00:00