163929 Commits

Author SHA1 Message Date
Teresa Johnson
61d9a69a18 [LTO] Allow pass remarks with hotness to be set when emitting to stderr
Summary:
Set setDiagnosticsHotnessRequested before the early exit check for a
diagnostic output file, so that pass remarks with hotness works when
emitting pass remarks to stderr (e.g. via -pass-remarks=.).

Also fix the llvm-lto2 diagnistic handler so that it only calls exit(1)
when the diagnistic is an error type. Otherwise the new test invocation
of llvm-lto2 with -pass-remarks causes it to fail. The new code is
consistent with the diagnostic handler elsewhere (e.g. on the
LLVMContext).

Reviewers: pcc, davide

Subscribers: fhahn, mehdi_amini, llvm-commits, inglorion

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331569 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 23:59:34 +00:00
Davide Italiano
62b8986cc3 [llvm-mc-assemble-fuzzer] Catch up with API changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331568 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 23:41:25 +00:00
Michael Berg
125f36c4f3 Mapping SDNode flags to MachineInstr flags
Summary: Providing the glue to map SDNode fast math sub flags to MachineInstr fast math sub flags.

Reviewers: spatel, arsenm, wristow

Reviewed By: spatel

Subscribers: wdng

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331567 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 23:41:15 +00:00
Konstantin Zhuravlyov
380bd7f59c AMDGPU/NFC: Update D16PreservesUnusedBits description based Tony Tye's comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331564 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 22:53:55 +00:00
Philip Reames
806dec77cb [LICM] Compute a must execute property for the prefix of the header as we go
Computing this property within the existing walk ensures that the cost is linear with the size of the block. If we did this from within isGuaranteedToExecute, it would be quadratic without some very fancy caching.

This allows us to reliably catch a hoistable instruction within a header which may throw at some point *after* our hoistable instruction. It doesn't do anything for non-header cases, but given how common single block loops are, this seems very worthwhile.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331557 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 21:35:00 +00:00
Konstantin Zhuravlyov
847f729f1c AMDGPU/NFC: Fix formatting for 900, 902 ISA Version features
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331553 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 20:21:31 +00:00
Konstantin Zhuravlyov
0511853bbf AMDGPU: Add D16 instructions preserve unused bits feature
- Predicate D16 patterns on this new feature
- Added this new feature to gfx900/2/4

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331551 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 20:06:57 +00:00
Geoff Berry
156f761cf0 [MachineLICM] Debug intrinsics shouldn't affect hoist decisions
Summary:
When checking if an instruction stores to a given frame index, check
that the instruction can write to memory before looking at the memory
operands list to avoid e.g. DBG_VALUE instructions that reference a
frame index preventing a load from that index from being hoisted.

Reviewers: dblaikie, MatzeB, qcolombet, reames, javed.absar

Subscribers: mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331549 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 19:25:09 +00:00
Shoaib Meenai
b90f003d3e [ObjCARC] Account for catchswitch in bitcast insertion
A catchswitch is both a pad and a terminator, meaning it must be the
only non-phi instruction in its basic block. When we're inserting a
bitcast in the incoming basic block for a phi, if that incoming block is
a catchswitch, we should go up the dominator tree to find a valid
insertion point rather than attempting to insert before the catchswitch
(which would result in invalid IR).

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331548 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 19:03:11 +00:00
Michael Berg
eb53cf7275 Fast Math Flag mapping into SDNode
Summary: Adding support for Fast flags in the SDNode to leverage fast math sub flag usage.

Reviewers: spatel, arsenm, jbhateja, hfinkel, escha, qcolombet, echristo, wristow, javed.absar

Reviewed By: spatel

Subscribers: llvm-commits, rampitec, nhaehnle, tstellar, FarhanaAleen, nemanjai, javed.absar, jbhateja, hfinkel, wdng

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331547 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 18:48:20 +00:00
Simon Pilgrim
3571b4d5a2 [X86] Add WriteEMMS scheduler class
Filled in the missing values from Btver2 SoG or Agner

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331546 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 18:16:13 +00:00
Simon Pilgrim
512e46b3c9 [X86] Finish splitting WriteVecShift and WriteVecIMul to remove InstRW overrides.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331543 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 17:47:46 +00:00
Craig Topper
671262c2c3 [LoopIdiomRecognize] Don't create an IRBuilder just to call getTrue/getFalse.
We can call the methods in ConstantInt directly. We just need a context.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331542 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 17:39:08 +00:00
Adhemerval Zanella
dbaf52b13f [AArch64] Add missing testcase for r331522
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331541 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 17:21:26 +00:00
Matt Davis
5646bfe92b [llvm-mca] Add descriptive names for the TimelineView report characters. NFC.
Summary:
This change makes the TimelineView source simpler to read and easier to modify in the future.
This patch introduces a class of static chars used as the display values in the TimelineView report, this change just eliminates a few magic characters.

Reviewers: andreadb, courbet, RKSimon

Reviewed By: andreadb

Subscribers: tschuett, gbedwell, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331540 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 17:19:40 +00:00
Peter Collingbourne
1f43829706 Object: The default alignment of a section without alignment flags is 16.
Differential Revision: https://reviews.llvm.org/D46420

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331538 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 16:45:57 +00:00
Peter Collingbourne
c0d9a0b316 obj2yaml: Correctly round-trip default alignment.
Previously we were emitting the "cooked" alignment, which made it hard
to distinguish between that and the default alignment.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331537 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 16:28:41 +00:00
Adrian Prantl
a244d9e3de DwarfCompileUnit: Fix another assertion failure on malformed input
that is not rejected by the Verifier.

Thanks to Björn Pettersson for providing a reproducer!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331535 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 16:10:43 +00:00
Clement Courbet
60248da1b6 [llvm-exegesis] Fix pfm counter names for BDW.
Summary: They are not consistent with other microarchitectures.

Reviewers: gchatelet

Subscribers: tschuett, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331532 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:26:12 +00:00
Simon Pilgrim
43fbec5ac7 [X86] Cleanup SchedWriteFMA classes and use X86SchedWriteWidths directly.
Rename scalar and XMM versions, this is to match/simplify an upcoming change to split MUL/DIV/SQRT scalar/xmm/ymm/zmm classes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331531 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:20:18 +00:00
David Bolvansky
3847aa02de [bindings/go] Add Go bindings for volatile loads/stores
Reviewers: whitequark

Reviewed By: whitequark

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331530 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:14:00 +00:00
Krzysztof Parzyszek
adb4ffc311 [Hexagon] Remove leftover debugging code after r331527
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331528 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:07:30 +00:00
Krzysztof Parzyszek
66648415b9 [Hexagon] Handle non-immediate constants in HexagonSplitDouble
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331527 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:04:48 +00:00
Simon Dardis
aff0c11ab4 [mips] Correct the predicates of sign extension instructions
And eliminatw the duplication of those instructions for microMIPS32r6.

Reviewers: smaksimovic, abeserminji, atanasyan

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331526 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 15:00:54 +00:00
Simon Pilgrim
3ca5f74c79 [X86] Add WriteVecMOVMSKY scheduler class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331525 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 14:54:33 +00:00
Adhemerval Zanella
e7b4c7bbff [AArch64] Custom Lower MULLH{S,U} for v16i8, v8i16, and v4i32
This patch adds a custom lowering for ISD::MULH{S,U} used on divide by
constant optimization (DAGCombiner::BuildSDIV and DAGCombiner::BuildUDIV).

New patterns for smull and umull are added, so AArch64ISD::{S,U}MULL
can be correctly lowered to smull2 and umull2.

Reviewed By: SjoerdMeijer

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331522 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 14:33:55 +00:00
Krzysztof Parzyszek
1a966b8669 [Hexagon] Skip reserved physical registers when updating liveness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331518 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 13:59:05 +00:00
Andrea Di Biagio
f6d466f5ba [llvm-mca] use colors for warnings and notes generated by InstrBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331517 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 13:52:12 +00:00
Andrea Di Biagio
f501530ff6 [llvm-mca] remove unused argument from method InstrBuilder::createInstrDescImpl.
We don't need to pass the instruction index to the method that constructs new
instruction descriptors.

No functional change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331516 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 13:10:10 +00:00
Simon Pilgrim
771e0a5516 [X86] Add SchedWriteFRnd fp rounding scheduler classes
Split off from SchedWriteFAdd for fp rounding/bit-manipulation instructions.

Fixes an issue on btver2 which only had the ymm version using the JSTC pipe instead of JFPA.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331515 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 12:59:24 +00:00
Jeremy Morse
fac3f324f9 [X86] Add test case for PR30290s failing behaviour
Following the advice in review D45022, this currently tests for the broken llc
output where an instruction is mis-scheduled. This test is committed in advance
to improve the eventual fixing patch in D45022, making the bad behaviour that
that patch fixes clearer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331514 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 10:05:10 +00:00
Jeremy Morse
23c1e933eb Word wrap a test-file comment to 80 columns
This is a test commit to check whether my account works.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331512 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 08:58:06 +00:00
Bjorn Pettersson
6542d5412c [SelectionDAG] Refactor code by adding RegsForValue::getRegsAndSizes(). NFCI
Summary:
Added a helper method in RegsForValue to get a list with
all the <RegNumber, RegSize> pairs that we want to iterate
over in SelectionDAGBuilder::EmitFuncArgumentDbgValue and
in SelectionDAGBuilder::visitIntrinsicCall.

Reviewers: vsk

Reviewed By: vsk

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331510 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 08:50:48 +00:00
Jonas Paulsson
cac7859af8 [RegUsageInfoCollector] Bugfix for handling of register aliases.
Don't assume the alias of a defined reg is always already in the set.

As the test case in https://bugs.llvm.org/show_bug.cgi?id=36587 discovered,
it is wrong to assume that all the aliases of the defined register in the
*current function* is already present in the UsedPhysRegsMask.

This patch changes this so that any definition in the current function of a
phys-reg always results in all its aliases inserted into the set of defined
registers.

Review: Quentin Colombet
https://reviews.llvm.org/D45157

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331509 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 07:50:05 +00:00
Max Kazantsev
db587a4f07 [IRCE] Fix misuse of dyn_cast which leads to UB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331508 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 07:34:35 +00:00
Dean Michael Berris
de00b9f070 [XRay][compiler-rt+docs] Introduce __xray_log_init_mode(...).
Summary:
This addresses http://llvm.org/PR36790.

The change Deprecates a number of functions and types in
`include/xray/xray_log_interface.h` to recommend using string-based
configuration of XRay through the __xray_log_init_mode(...) function. In
particular, this deprecates the following:

- `__xray_set_log_impl(...)` -- users should instead use the
`__xray_log_register_mode(...)` and `__xray_log_select_mode(...)` APIs.

- `__xray_log_init(...)` -- users should instead use the
`__xray_log_init_mode(...)` function, which also requires using the
`__xray_log_register_mode(...)` and `__xray_log_select_mode(...)`
functionality.

- `__xray::FDRLoggingOptions` -- in following patches, we'll be
migrating the FDR logging implementations (and tests) to use the
string-based configuration. In later stages we'll remove the
`__xray::FDRLoggingOptions` type, and ask users to migrate to using the
string-based configuration mechanism instead.

- `__xray::BasicLoggingOptions` -- same as `__xray::FDRLoggingOptions`,
we'll be removing this type later and instead rely exclusively on the
string-based configuration API.

We also update the documentation to reflect the new advice and remove
some of the deprecated notes.

Reviewers: eizan, kpw, echristo, pelikan

Reviewed By: kpw

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331503 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 06:01:12 +00:00
Michael Zolotukhin
53458b4d8a [MachineCSE] Rewrite a loop checking if a block is in a set of blocks without using a set. NFC.
Summary:
Using a set is unnecessary here an in some cases (see e.g. PR37277)
takes significant amount of time to just insert values into it. In this
particular case all we need is just to check if we find the block we are
looking for or not.

Reviewers: davide

Subscribers: hiraditya, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331502 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 01:40:05 +00:00
Craig Topper
eecfb9c5ec [LoopIdiomRecognize] Replace more unchecked dyn_casts with cast.
Two of these are immediately dereferenced on the next line. The other two are passed immediately to the IRBuilder constructor which can't handle a nullptr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331500 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 01:04:28 +00:00
Craig Topper
928cd2f409 [LoopIdiomRecognize] Use a regular array instead of a SmallVector and explicit ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331499 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 01:04:26 +00:00
Craig Topper
41532eec3c [LoopIdiomRecognize] Turn two uncheck dyn_casts into regular casts.
These are casts on users of a PHINode to Instruction. I think since PHINode is an Instruction any users would also be Instructions. At least a cast will give us an assertion if its wrong.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331498 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-04 01:04:24 +00:00
Craig Topper
013b5ae046 [LoopIdiomRecognize] Add a test case to show incorrect transformation of an infinite loop with side effets into a countable loop using ctlz.
We currently recognize this idiom where x is signed and thus the shift in an ashr.

int cnt = 0;
while (x) {
  x >>= 1; // arithmetic shift right
  ++cnt;
}

and turn it into (bitwidth - ctlz(x)). And if there is anything else in the loop we will create a new loop that runs that many times.

If x is initially negative, the shift result will never be 0 and thus the loop is infinite. If you put something with side effects in the loop, that side effect will now only happen bitwidth times instead of an infinite number of times.

So this transform is only safe for logical shift right (which we don't currently recognize) or if we can prove that x cannot be negative before the loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331493 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 23:50:29 +00:00
Tom Stellard
220e35cb11 AMDGPU: Make getSubRegFromChannel a static member of AMDGPURegisterInfo
Summary:
This makes is possible to have R600RegisterInfo and SIRegisterInfo
not inherit from AMDGPURegisterInfo.

Reviewers: arsenm, nhaehnle

Reviewed By: arsenm

Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, llvm-commits, t-tye

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331490 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 22:38:06 +00:00
Simon Pilgrim
bbc6a290c8 [X86] Add WriteDPPD/WriteDPPS dot product scheduler classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331489 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 22:31:19 +00:00
Simon Pilgrim
a71b5d3c63 [X86][Znver1] Use SchedAlias to tag microcoded scheduler classes
Avoids extra entries in the class tables.

Found a typo that missed the MMX_PHSUBSW instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331488 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 22:12:23 +00:00
Justin Bogner
bf0b5f5f33 Fix include of config.h that was incorrectly changed in r331184
The RWMutex implementation depends on config.h macros (specifically
HAVE_PTHREAD_H and HAVE_PTHREAD_RWLOCK_INIT), so we need to be
including it and not just llvm-config.h here or we fall back to a much
slower implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331487 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 21:59:13 +00:00
Sanjay Patel
b841e3b947 [InstCombine] refine select-of-constants to bitwise ops
Add logic for the special case when a cmp+select can clearly be
reduced to just a bitwise logic instruction, and remove an 
over-reaching chunk of general purpose bit magic. The primary goal 
is to remove cases where we are not improving the IR instruction 
count when doing these select transforms, and in all cases here that 
is true.

In the motivating 3-way compare tests, there are further improvements
because we can combine/propagate select values (not sure if that
belongs in instcombine, but it's there for now).

DAGCombiner has folds to turn some of these selects into bit magic,
so there should be no difference in the end result in those cases.
Not all constant combinations are handled there yet, however, so it
is possible that some targets will see more cmov/csel codegen with
this change in IR canonicalization. 

Ideally, we'll go further to *not* turn selects into multiple 
logic/math ops in instcombine, and we'll canonicalize to selects.
But we should make sure that this step does not result in regressions
first (and if it does, we should fix those in the backend).

The general direction for this change was discussed here:
http://lists.llvm.org/pipermail/llvm-dev/2016-September/105373.html
http://lists.llvm.org/pipermail/llvm-dev/2017-July/114885.html

Alive proofs for the new bit magic:
https://rise4fun.com/Alive/XG7

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331486 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 21:58:44 +00:00
Tom Stellard
57342fb583 GlobalISel: Use a callback to compute constrained reg class for unallocatble registers
Summary:
constrainOperandRegClass() currently fails if it tries to constrain the
register class of an operand that is defeined with an unallocatable register
class.  This patch resolves this by adding a target callback to compute
register constriants in this case.

This is required by the AMDGPU because many of its instructions have source opreands
defined with the unallocatable register classe VS_32 which is a union of two allocatable
register classes VGPR_32 and SReg_32.

Reviewers: dsanders, aditya_nandakumar

Reviewed By: aditya_nandakumar

Subscribers: rovka, kristof.beyls, tpr, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331485 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 21:44:16 +00:00
Teresa Johnson
3a0c276585 [ThinLTO] Add support for optimization remarks to thinBackend
Summary:
Support was added to the regular LTO backend, but not thinBackend.
This patch adds that support.

Reviewers: pcc, davide

Subscribers: mehdi_amini, inglorion, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331481 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 20:24:12 +00:00
Sanjay Patel
da9cac629c [PowerPC] add more FMF debug output; NFC
We can't see all of the problems currently unless
we look at debug output when the global 'unsafe' is
on. It's a mess. This is another attempt to make
sure that D45710 is not making changes unintentionally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331476 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 18:49:35 +00:00
Simon Pilgrim
3e77bbe677 [X86][AVX512] VPLZCNT instructions match SchedWriteVecIMul scheduling class not SchedWriteVecALU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331473 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-03 18:22:49 +00:00