| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 319390
|
| |
|
|
| |
llvm-svn: 319387
|
| |
|
|
|
|
|
|
|
|
| |
a VZEXT to create a larger VSEXT.
If the input the vzext was signed this would do the wrong thing.
Not sure how to test this.
llvm-svn: 319382
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- add -ppc-reg-with-percent-prefix option to use %r3 etc as register
names
- split off logic for Darwinish verbose conditional codes into a helper
function
- be explicit about Darwin vs AIX vs GNUish assembler flavors
Based on the patch from Alexandre Yukio Yamashita
Differential Revision: https://reviews.llvm.org/D39016
llvm-svn: 319381
|
| |
|
|
|
|
|
|
|
| |
I believe these were recently fixed by:
https://reviews.llvm.org/rL319186
Differential Revision: https://reviews.llvm.org/D40619
llvm-svn: 319380
|
| |
|
|
|
|
|
|
|
|
|
| |
This class had some code that would automatically remap type
indices before hashing and serializing. The only caller of
this method was the TypeStreamMerger anyway, and the method
doesn't make general sense, and prevents making certain future
improvements to the class. So, factoring this up one level
into the TypeStreamMerger where it belongs.
llvm-svn: 319377
|
| |
|
|
|
|
|
|
|
|
|
|
| |
to insert an assertsext/assertzext based on the original type
If we put in an assertsext/zext here, we're able to generate better truncate code using pack on pre-avx512 targets.
Similar is already done during type legalization. This is the equivalent for op legalization
Differential Revision: https://reviews.llvm.org/D40591
llvm-svn: 319368
|
| |
|
|
|
|
|
| |
To fully avoid trapping on wasm, fptoui needs a second check to ensure that
the operand isn't below the supported range.
llvm-svn: 319354
|
| |
|
|
| |
llvm-svn: 319352
|
| |
|
|
| |
llvm-svn: 319351
|
| |
|
|
|
|
| |
Accidental commit of incomplete patch
llvm-svn: 319346
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A couple of places in LLD were passing references to
TypeTableCollections around, which makes it hard to change the
implementation at runtime. However, these cases only needed to
iterate over the types in the collection, and TypeCollection
already provides a handy abstract interface for this purpose.
By implementing this interface, we can get rid of the need to
pass TypeTableBuilder references around, which should allow us
to swap the implementation at runtime in subsequent patches.
llvm-svn: 319345
|
| |
|
|
| |
llvm-svn: 319338
|
| |
|
|
|
|
| |
scheduler classes
llvm-svn: 319337
|
| |
|
|
|
|
|
|
| |
Partially reverting enabling of post-legalization store merge
(r319036) for just ARM backend as it is causing incorrect code
in some Thumb2 cases.
llvm-svn: 319331
|
| |
|
|
|
|
| |
All default to NoItinerary
llvm-svn: 319326
|
| |
|
|
|
|
| |
used by any instructions).
llvm-svn: 319321
|
| |
|
|
| |
llvm-svn: 319316
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Patch [1/4] in a series to add parsing of predicates and properly parse SVE ZIP1/ZIP2 instructions.
Reviewers: rengolin, kristof.beyls, fhahn, mcrosier, evandro, echristo, efriedma
Reviewed By: fhahn
Subscribers: aemerson, javed.absar, llvm-commits, tschuett
Differential Revision: https://reviews.llvm.org/D40360
llvm-svn: 319315
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When lowering a G_BRCOND, we generate a TSTri of the condition against
1, which sets the flags, and then a Bcc which branches based on the
value of the flags.
Unfortunately, we were using the wrong condition code to check whether
we need to branch (EQ instead of NE), which caused all our branches to
do the opposite of what they were intended to do. This patch fixes the
issue by using the correct condition code.
llvm-svn: 319313
|
| |
|
|
|
|
| |
instruction scheduler classes
llvm-svn: 319312
|
| |
|
|
|
|
|
|
|
|
|
| |
When translating pseudo to MC, v_add/sub/subrev_u32 shall be mapped via a separate table as GFX8 has opcodes with the same names.
These instructions shall also be labelled as renamed for pseudoToMCOpcode to handle them correctly.
Reviewers: arsenm
Differential Revision: https://reviews.llvm.org/D40550
llvm-svn: 319311
|
| |
|
|
|
|
| |
NFCI.
llvm-svn: 319310
|
| |
|
|
|
|
| |
templates. NFCI.
llvm-svn: 319308
|
| |
|
|
|
|
| |
getAddRecExprPHILiterally
llvm-svn: 319306
|
| |
|
|
|
|
|
|
|
|
|
| |
This will allow compilation of assembly files targeting armv7e-m without having
to specify the Tag_CPU_arch attribute as a workaround.
Differential revision: https://reviews.llvm.org/D40370
Patch by Ian Tessier!
llvm-svn: 319303
|
| |
|
|
|
|
| |
Enable complex addr modes after two critical fixes: rL319109 and rL319292
llvm-svn: 319302
|
| |
|
|
|
|
|
|
| |
MVT::v8i16/v16i8/v16i16.
A DAG combine ensures these ops are always promoted to vXi32.
llvm-svn: 319298
|
| |
|
|
| |
llvm-svn: 319293
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If common type is different we should bail out due to we will not be
able to create a select or Phi of these values.
Basically it is done in ExtAddrMode::compare however it does not work
if we handle the null first and then two values of different types.
so add a check in initializeMap as well. The check in ExtAddrMode::compare
is used as earlier bail out.
Reviewers: reames, john.brawn
Reviewed By: john.brawn
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40479
llvm-svn: 319292
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Separate the handling of AND/AND8 out from PHI/OR/ISEL checking. The reasoning
is the others need all their operands to be sign/zero extended for their output
to also be sign/zero extended. This is true for AND and sign-extension, but for
zero-extension we only need at least one of the input operands to be zero
extended for the result to also be zero extended.
Differential Revision: https://reviews.llvm.org/D39078
llvm-svn: 319289
|
| |
|
|
|
|
|
|
|
|
|
| |
The object can't straddle the address space
wrap around, so I think it's OK to assume any
offsets added to the base object pointer can't
overflow. Similar logic already appears to be
applied in SelectionDAGBuilder when lowering
aggregate returns.
llvm-svn: 319272
|
| |
|
|
| |
llvm-svn: 319271
|
| |
|
|
|
|
|
|
|
| |
GFX9 stopped using m0 for most DS instructions. Select
a different instruction without the use. I think this will
be less error prone than trying to manually maintain m0
uses as needed.
llvm-svn: 319270
|
| |
|
|
| |
llvm-svn: 319266
|
| |
|
|
| |
llvm-svn: 319263
|
| |
|
|
| |
llvm-svn: 319260
|
| |
|
|
|
|
|
|
|
|
| |
legal. Fix infinite loop in op legalization when promotion requires 2 steps.
Previously we had an isel pattern to add the truncate. Instead use Promote to add the truncate to the DAG before isel.
The Promote legalization code had to be updated to prevent an infinite loop if promotion took multiple steps because it wasn't remembering the previously tried value.
llvm-svn: 319259
|
| |
|
|
| |
llvm-svn: 319256
|
| |
|
|
| |
llvm-svn: 319253
|
| |
|
|
|
|
|
|
| |
Update multi-classes to take the scheduling OpndItins instead of hard coding it.
Will be reused in the AVX512 equivalents.
llvm-svn: 319249
|
| |
|
|
|
|
|
|
| |
Update multi-classes to take the scheduling OpndItins instead of hard coding it.
Will be reused in the AVX512 equivalents.
llvm-svn: 319245
|
| |
|
|
|
|
|
|
| |
Update multi-classes to take the scheduling OpndItins instead of hard coding it.
SSE_PACK will be reused in the AVX512 equivalents.
llvm-svn: 319243
|
| |
|
|
| |
llvm-svn: 319240
|
| |
|
|
| |
llvm-svn: 319239
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From a random opt-stat output:
Top 10 remarks:
tailcallelim/tailcall 53%
inline/AlwaysInline 13%
gvn/LoadClobbered 13%
inline/Inlined 8%
inline/TooCostly 2%
inline/NoDefinition 2%
licm/LoadWithLoopInvariantAddressInvalidated 2%
licm/Hoisted 1%
asm-printer/InstructionCount 1%
prologepilog/StackSize 1%
llvm-svn: 319235
|
| |
|
|
|
|
|
|
| |
legal when zero extending from vXi8/vX816.
The UINT_TO_FP is immediately converted to SINT_TO_FP when the node is re-evaluated because we'll detect that the sign bit is zero.
llvm-svn: 319234
|
| |
|
|
|
|
| |
We have a DAG combine that uses a zero extend that should prevent this from ever occurring now.
llvm-svn: 319233
|
| |
|
|
|
|
|
|
|
|
|
| |
An alloca may be larger than a variable that is described to be stored
there. Don't create a dbg.value for fragments that are outside of the
variable.
This fixes PR35447.
https://bugs.llvm.org/show_bug.cgi?id=35447
llvm-svn: 319230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ordering
Summary:
This fixes failures in the following tests uncovered by D39245:
LLVM :: CodeGen/Hexagon/args.ll
LLVM :: CodeGen/Hexagon/constp-extract.ll
LLVM :: CodeGen/Hexagon/expand-condsets-basic.ll
LLVM :: CodeGen/Hexagon/gp-rel.ll
LLVM :: CodeGen/Hexagon/packetize_cond_inst.ll
LLVM :: CodeGen/Hexagon/simple_addend.ll
LLVM :: CodeGen/Hexagon/swp-stages4.ll
LLVM :: CodeGen/Hexagon/swp-vmult.ll
LLVM :: CodeGen/Hexagon/swp-vsum.ll
LLVM :: MC/Hexagon/align.s
LLVM :: MC/Hexagon/asmMap.s
LLVM :: MC/Hexagon/dis-duplex-p0.s
LLVM :: MC/Hexagon/double-vector-producer.s
LLVM :: MC/Hexagon/inst_select.ll
LLVM :: MC/Hexagon/instructions/j.s
Reviewers: colinl, kparzysz, adasgupt, slarin
Reviewed By: kparzysz
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40227
llvm-svn: 319223
|