| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
This should fix the GlobalISel verifier.
llvm-svn: 293550
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since we have no call support and late linking we can produce code
only for used symbols. This saves compilation time, size of the final
executable, and size of any intermediate dumps.
Run Internalize pass early in the opt pipeline followed by global
DCE pass. To enable it RT can pass -amdgpu-internalize-symbols option.
Differential Revision: https://reviews.llvm.org/D29214
llvm-svn: 293549
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file types.
To better match the old darwin otool(1) behavior, when llvm-obdump(1) is used
with the -macho option and the input file is not an object file simply print
the file name and this message:
foo: is not an object file
and continue on to process other input files. Also in this case don’t exit
non-zero. This should help in some OSS projects' with autoconf scripts
that are expecting the old darwin otool(1) behavior.
rdar://26828015
llvm-svn: 293547
|
| |
|
|
|
|
|
|
|
| |
For some reason the exception selector register must be a pointer (that's
assumed by SDag); on the other hand, it gets moved into an IR-level type which
might be entirely different (i32 on AArch64). IRTranslator needs to be aware of
this.
llvm-svn: 293546
|
| |
|
|
| |
llvm-svn: 293545
|
| |
|
|
|
|
|
|
|
|
| |
For targets with different addressing modes in each address space,
if this is dropped querying isLegalAddressingMode later with this
will give a nonsense result, breaking the isLegalUse assertions.
This is a candidate for the 4.0 release branch.
llvm-svn: 293542
|
| |
|
|
| |
llvm-svn: 293541
|
| |
|
|
|
|
|
|
|
| |
This is worse if the original constant is an inline immediate.
This should also be done for 64-bit adds, but requires fixing
operand folding bugs first.
llvm-svn: 293540
|
| |
|
|
| |
llvm-svn: 293538
|
| |
|
|
|
|
|
| |
This can happen if earlier combining has removed all uses of some VReg, which
is fine and shouldn't flag an error.
llvm-svn: 293537
|
| |
|
|
|
|
| |
This is fairly ugly, but apparently GCC still doesn't understand C++11.
llvm-svn: 293535
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Tablegen emitted a warning when the fast isel emitter created dead
code by emitting a pattern that has no predicate before a pattern
that has one.
This should be an error but was originally only a warning because the X86
backend had a buggy definition that unintentionally caused this to be hit
(PR21575). That has been fixed a while ago (r222094), so it's safe to
upgrade the warning to an error.
llvm-svn: 293534
|
| |
|
|
| |
llvm-svn: 293533
|
| |
|
|
| |
llvm-svn: 293532
|
| |
|
|
| |
llvm-svn: 293528
|
| |
|
|
| |
llvm-svn: 293526
|
| |
|
|
|
|
|
| |
With leaf functions, this makes nonsensical decisions
based on the uniformity of the arguments.
llvm-svn: 293525
|
| |
|
|
|
|
| |
vectors with splat constants
llvm-svn: 293524
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, we would hit UB (or the ISD::DELETED_NODE assert) if we
happened to replace a node during UpdateChains, because it would be
left in the list we were iterating over. This nulls out the pointer
when that happens so that we can avoid the issue.
Fixes llvm.org/PR31710
llvm-svn: 293522
|
| |
|
|
|
|
| |
possible. NFCI.
llvm-svn: 293520
|
| |
|
|
|
|
| |
>>?exact (C1-C2); NFC
llvm-svn: 293517
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28977
llvm-svn: 293516
|
| |
|
|
|
|
| |
will turn into unreachable when it runs
llvm-svn: 293515
|
| |
|
|
| |
llvm-svn: 293514
|
| |
|
|
|
|
|
|
| |
fcmp (fneg x), c, pred -> fcmp x, -c, (swap pred)
InstCombine already does this.
llvm-svn: 293512
|
| |
|
|
| |
llvm-svn: 293511
|
| |
|
|
| |
llvm-svn: 293510
|
| |
|
|
|
|
|
|
| |
This reverts commit r293503.
Revert while I investigate some of the buildbot failures.
llvm-svn: 293509
|
| |
|
|
| |
llvm-svn: 293508
|
| |
|
|
|
|
| |
with splat constants
llvm-svn: 293507
|
| |
|
|
|
|
|
|
|
| |
To simplify/clarify memory ownership, make leaks (as one was found/fixed
recently) harder to write, etc.
(also, while I was there - removed a duplicate lookup in a container)
llvm-svn: 293506
|
| |
|
|
| |
llvm-svn: 293504
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: We can select constant/global G_LOAD, global G_STORE, and G_GEP.
Reviewers: qcolombet, MatzeB, t.p.northover, ab, arsenm
Subscribers: mehdi_amini, vkalintiris, kzhuravl, wdng, nhaehnle, mgorny, yaxunl, tony-tye, modocache, llvm-commits, dberris
Differential Revision: https://reviews.llvm.org/D26730
llvm-svn: 293503
|
| |
|
|
| |
llvm-svn: 293502
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r293196
Besides making things look nicer, ATM, we'd like to preserve analysis
more than we'd like to destroy the CFG. We'll probably revisit in the future
llvm-svn: 293501
|
| |
|
|
|
|
| |
target shuffles
llvm-svn: 293500
|
| |
|
|
|
|
|
| |
This fixes emitting conversions of constants on targets
without legal f16 that need to use these for legalization.
llvm-svn: 293499
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original shift is bigger, so this may qualify as 'obvious',
but here's an attempt at an Alive-based proof:
Name: exact
Pre: (C1 u< C2)
%a = shl i8 %x, C1
%b = lshr exact i8 %a, C2
=>
%c = lshr exact i8 %x, C2 - C1
%b = and i8 %c, ((1 << width(C1)) - 1) u>> C2
Optimization is correct!
llvm-svn: 293498
|
| |
|
|
| |
llvm-svn: 293496
|
| |
|
|
| |
llvm-svn: 293494
|
| |
|
|
|
|
| |
This significantly reduces the noise level of these messages.
llvm-svn: 293492
|
| |
|
|
| |
llvm-svn: 293491
|
| |
|
|
|
|
|
|
| |
TotalAltCost => TotalSecondaryCost
Differential Revision: https://reviews.llvm.org/D29231
llvm-svn: 293490
|
| |
|
|
| |
llvm-svn: 293489
|
| |
|
|
| |
llvm-svn: 293487
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original message:
Fix the values of two xcore ELF flags.
The values in llvm grew from a pre-MC day when they would not show up
in .o files and are outside of the SHF_MASKPROC.
Fortunately the MC output is not currently used as xcore has its own
assemble and that assembler uses valid values. This updates llvm to
use the same values as the xmos assembler.
llvm-svn: 293486
|
| |
|
|
|
|
|
|
|
|
| |
Different architectures can have different meaning for flags in the
SHF_MASKPROC mask, so we should always check what the architecture use
before checking the flag.
NFC for now, but will allow fixing the value of an xmos flag.
llvm-svn: 293484
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
AMDGPU has two register classes with the same set of registers, and this
was causing this tablegen backend would get stuck in infinite recursion.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: tpr, wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D29049
llvm-svn: 293483
|
| |
|
|
| |
llvm-svn: 293482
|
| |
|
|
|
|
|
|
| |
This reverts commit r293480.
The patch is correct, but found bugs in other areas that need to be fixed.
llvm-svn: 293481
|