| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
WeakVH nulls itself out if the value it was tracking gets deleted, but
it does not track RAUW.
Reviewers: dblaikie, davide
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D32267
llvm-svn: 301425
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
I plan to use WeakVH to mean "nulls itself out on deletion, but does
not track RAUW" in a subsequent commit.
Reviewers: dblaikie, davide
Reviewed By: davide
Subscribers: arsenm, mehdi_amini, mcrosier, mzolotukhin, jfb, llvm-commits, nhaehnle
Differential Revision: https://reviews.llvm.org/D32266
llvm-svn: 301424
|
| |
|
|
|
|
|
|
|
|
| |
See bug 30827: https://bugs.llvm.org//show_bug.cgi?id=30827
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D32535
llvm-svn: 301418
|
| |
|
|
| |
llvm-svn: 301413
|
| |
|
|
| |
llvm-svn: 301411
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Build vectors have magical truncation powers, so we have things like this:
v4i1 = BUILD_VECTOR Constant:i32<1>, Constant:i32<1>, Constant:i32<1>, Constant:i32<1>
v4i16 = BUILD_VECTOR Constant:i32<1>, Constant:i32<1>, Constant:i32<1>, Constant:i32<1>
If we don't truncate the splat node returned by getConstantSplatNode(), then we won't find
truth when ZeroOrNegativeOneBooleanContent is the rule.
Differential Revision: https://reviews.llvm.org/D32505
llvm-svn: 301408
|
| |
|
|
|
|
| |
Add AssumptionCache, DominatorTree, TLI if available.
llvm-svn: 301407
|
| |
|
|
|
|
| |
SimplifyInstruction
llvm-svn: 301406
|
| |
|
|
|
|
| |
AssumptionCache, DominatorTree, TLI if available.
llvm-svn: 301405
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For targets that don't have ISD::MULHS or ISD::SMUL_LOHI for the type
and the double width type is illegal, then the two operands are
sign extended to twice their size then multiplied to check for overflow.
The extended upper halves were mismatched causing an incorrect result.
This fixes the mismatch.
A test was added for ARM V6-M where the bug was detected.
Patch by James Duley.
Differential Revision: https://reviews.llvm.org/D31807
llvm-svn: 301404
|
| |
|
|
| |
llvm-svn: 301403
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Otherwise we might end up with some empty basic blocks or
single-entry-single-exit basic blocks.
This fixes PR32085
Reviewers: chandlerc, danielcdh
Subscribers: mehdi_amini, RKSimon, llvm-commits
Differential Revision: https://reviews.llvm.org/D30468
llvm-svn: 301395
|
| |
|
|
|
|
|
|
|
| |
Removed micro mips register classes for gp initialization because gp initialization uses pure mips64 instruction. Even when compiling for micro mips, gp initialization can be done with pure mips64 instructions.
Reviewed by Simon Dardis
Differential: D32286
llvm-svn: 301394
|
| |
|
|
|
|
|
|
|
|
| |
(Continue)
Complete the patch committed in rL300190.
Differential Revision: https://reviews.llvm.org/D32287
llvm-svn: 301393
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r299766 contained a "conditional move or jump depends on uninitialized value"
fault, identified by valgrind. This occurred as MipsFastISel::finishCall(..)
used CCState over MipsCCState. The latter is required for the TableGen'd calling
convention logic due to reliance on pre-analyzing type information to lower call
results/returns of vectors correctly.
This change modifies the MipsCC AnalyzeCallResult to be useful with both the
SelectionDAG and FastISel lowering logic.
Reviewers: slthakur
Differential Revision: https://reviews.llvm.org/D32004
llvm-svn: 301392
|
| |
|
|
|
|
| |
0bH is now supported in MS asm.
llvm-svn: 301390
|
| |
|
|
|
|
|
|
| |
Replace "mov{d|q}" with "movq".
Differential Revision: https://reviews.llvm.org/D32220
llvm-svn: 301386
|
| |
|
|
| |
llvm-svn: 301383
|
| |
|
|
| |
llvm-svn: 301381
|
| |
|
|
|
|
| |
we do everywhere else
llvm-svn: 301380
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify* arguments.
Summary:
Expose the internal query structure, start using it.
Note: This is the most minimal change possible i could create. I have
trivial followups, like fixing the one use of const FastMathFlags &,
the renaming of CtxI to be consistent, etc.
This should be NFC.
Reviewers: majnemer, davide
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D32448
llvm-svn: 301379
|
| |
|
|
| |
llvm-svn: 301375
|
| |
|
|
|
|
|
|
|
|
|
| |
If Select pseudo instruction doesn't have use SR, then
CMP instructions are being marked as dead and later can be
removed by MachineCSE pass. This leads to incorrect code
generation.
Differential Revision: https://reviews.llvm.org/D32473
llvm-svn: 301372
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The order in which GCOV file info is printed depends on the string hash
function. This makes some GCOV tests brittle, because the tests must be
updated whenever the hash function changes.
Sort the filenames before printing out the file info to solve the
problem. This should be relatively cheap.
Differential Revision: https://reviews.llvm.org/D32512
llvm-svn: 301371
|
| |
|
|
| |
llvm-svn: 301370
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Addends are used as offsets to addresses of globals
and can be both positive and negative. This change
prints libObject in line with the spec and the MC
layer.
Subscribers: jfb, dschuff
Differential Revision: https://reviews.llvm.org/D32507
llvm-svn: 301369
|
| |
|
|
|
|
|
| |
It caused the register to later be dead, which would trigger a verifier
error.
llvm-svn: 301368
|
| |
|
|
| |
llvm-svn: 301367
|
| |
|
|
| |
llvm-svn: 301366
|
| |
|
|
|
|
|
| |
There is no need to copy the operands or inspect the sources.
Also remove some unnecessary clamp/omod usage.
llvm-svn: 301363
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D32504
llvm-svn: 301360
|
| |
|
|
| |
llvm-svn: 301358
|
| |
|
|
|
|
|
|
|
| |
We were already parsing and dumping this to the human readable
format, but not to the YAML format. This does so, in preparation
for reading it in and reconstructing the line information from
YAML.
llvm-svn: 301357
|
| |
|
|
|
|
| |
rdar://31520787
llvm-svn: 301352
|
| |
|
|
|
|
|
|
| |
The fix consists of resetting LocationKind when addMachineRegExpression fails.
rdar://problem/31803010
llvm-svn: 301351
|
| |
|
|
| |
llvm-svn: 301346
|
| |
|
|
|
|
| |
Differential Revisison: https://reviews.llvm.org/D32101
llvm-svn: 301343
|
| |
|
|
|
|
|
|
|
|
| |
The code I've removed here exists in ExpandBinOp in InstSimplify which we call into before SimplifyUsingDistributiveLaws. The code in InstSimplify looks to have been copied from here.
I verified this code doesn't fire on any lit tests. Not that that proves its definitely dead.
Differential Revision: https://reviews.llvm.org/D32472
llvm-svn: 301341
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporary APInts
This patch uses various APInt methods to reduce temporary APInt creation.
This should be all of the unrelated cleanups that got buried in D32376(creating a KnownBits struct) as well as some pointed out by Simon during the review of that. Plus a few improvements to use counting instead of masking.
I've left out any places where we do something like (KnownZero & KnownOne) != 0 as I plan to add a helper method to KnownBits to ask that question and didn't want to thrash that code an additional time.
Differential Revision: https://reviews.llvm.org/D32495
llvm-svn: 301338
|
| |
|
|
|
|
| |
The previous code was complex, incorrect, and couldn't print everything.
llvm-svn: 301333
|
| |
|
|
|
|
|
|
| |
Subscribers: jfb, dschuff
Differential Revision: https://reviews.llvm.org/D32459
llvm-svn: 301331
|
| |
|
|
|
|
|
|
| |
Subscribers: jfb, dschuff
Differential Revision: https://reviews.llvm.org/D32462
llvm-svn: 301330
|
| |
|
|
|
|
|
|
|
|
| |
The code Sanjay Patel moved over from InstCombine doesn't work properly if the 'and' has both inputs as nots because we used a commuted op matcher on the 'and' first. But this will bind to the first 'not' on 'and' when there could be two 'not's. InstCombine could rely on DeMorgan to ensure the 'and' wouldn't have two 'not's eventually, but InstSimplify can't rely on that.
This patch matches the xor first then checks for the ands and allows a not of either operand of the xor.
Differential Revision: https://reviews.llvm.org/D32458
llvm-svn: 301329
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D32465
llvm-svn: 301327
|
| |
|
|
| |
llvm-svn: 301326
|
| |
|
|
|
|
| |
temporary APInt. NFC
llvm-svn: 301325
|
| |
|
|
|
|
| |
This is a pre-commit for a patch I'm working on to turn KnownZero/One into a struct. Once I do that the type here will be less obvious.
llvm-svn: 301324
|
| |
|
|
|
|
|
|
| |
KnownZero. NFC
This is a pre-commit for a patch that I'm working on to merge KnownZero/KnownOne into a KnownBits struct which would have had to touch this line.
llvm-svn: 301323
|
| |
|
|
| |
llvm-svn: 301322
|
| |
|
|
|
|
| |
future patch. NFCI.
llvm-svn: 301320
|