| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 256301
|
|
|
|
| |
llvm-svn: 256300
|
|
|
|
| |
llvm-svn: 256169
|
|
|
|
| |
llvm-svn: 256168
|
|
|
|
| |
llvm-svn: 256167
|
|
|
|
|
|
|
|
|
| |
in braces.
This allows the AsmMatcherEmitter to properly tokenize the AsmStrings for
load and store instructions. This is a step towards asm parsing.
llvm-svn: 256166
|
|
|
|
| |
llvm-svn: 256165
|
|
|
|
| |
llvm-svn: 256164
|
|
|
|
| |
llvm-svn: 255939
|
|
|
|
| |
llvm-svn: 255925
|
|
|
|
| |
llvm-svn: 255897
|
|
|
|
| |
llvm-svn: 255877
|
|
|
|
|
|
|
|
|
| |
This creates the initial infrastructure for writing ELF output files. It
doesn't yet have any implementation for encoding instructions.
Differential Revision: http://reviews.llvm.org/D15555
llvm-svn: 255869
|
|
|
|
|
|
| |
We now have 240 expected failures.
llvm-svn: 255858
|
|
|
|
| |
llvm-svn: 255847
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Implement eliminateCallFramePsuedo to handle ADJCALLSTACKUP/DOWN
pseudo-instructions. Add a test calling a vararg function which causes non-0
adjustments. This revealed an issue with RegisterCoalescer wherein it
eliminates a COPY from SP32 to a vreg but failes to update the live ranges
of EXPR_STACK, causing a machineinstr verifier failure (so this test
is commented out).
Also add a dynamic alloca test, which causes a callseq_end dag node with
a 0 (instead of undef) second argument to be generated. We currently fail to
select that, so adjust the ADJCALLSTACKUP tablegen code to handle it.
Differential Revision: http://reviews.llvm.org/D15587
llvm-svn: 255844
|
|
|
|
| |
llvm-svn: 255817
|
|
|
|
| |
llvm-svn: 255816
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15546
llvm-svn: 255815
|
|
|
|
|
|
|
| |
If a branch both branches to and falls through to the same block, treat it as
an explicit branch.
llvm-svn: 255803
|
|
|
|
| |
llvm-svn: 255788
|
|
|
|
| |
llvm-svn: 255782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add instruction patterns for matching load and store instructions with constant
offsets in addresses. The code is fairly redundant due to the need to replicate
everything between imm, tglobaldadr, and texternalsym, but this appears to be
common tablegen practice. The main alternative appears to be to introduce
matching functions with C++ code, but sticking with purely generated matchers
seems better for now.
Also note that this doesn't yet support offsets from getelementptr, which will
be the most common case; that will depend on a change in target-independent code
in order to set the NoUnsignedWrap flag, which I'll submit separately. Until
then, the testcase uses ptrtoint+add+inttoptr with a nuw on the add.
Also implement isLegalAddressingMode with an approximation of this.
Differential Revision: http://reviews.llvm.org/D15538
llvm-svn: 255681
|
|
|
|
|
|
| |
We now have 252 expected failures.
llvm-svn: 255654
|
|
|
|
| |
llvm-svn: 255612
|
|
|
|
|
|
|
| |
For now, LLVM doesn't know about wasm module imports, so it shouldn't
emit .import directives.
llvm-svn: 255602
|
|
|
|
|
|
|
|
|
| |
Add return type information to call and call_indirect instructions. This
allows them to be disambiguated without knowledge of the callee.
Differential Revision: http://reviews.llvm.org/D15484
llvm-svn: 255565
|
|
|
|
|
|
|
|
|
| |
Implement a new BLOCK scope placement algorithm which better handles
early-return blocks and early exists from nested scopes.
Differential Revision: http://reviews.llvm.org/D15368
llvm-svn: 255564
|
|
|
|
| |
llvm-svn: 255563
|
|
|
|
|
|
|
| |
The WebAssemblyStoreResults pass runs before LiveVariables, so it doesn't
expect to have to keep dead flags up to date; check this with an assert.
llvm-svn: 255551
|
|
|
|
|
|
|
|
|
| |
Many tests are now passing due to eliminateFrameIndex implementation and
the list needs to be re-triaged because it unblocks other failures, and
some previous failures are different. However I'm about to churn it more
by implementing more lowering, so will wait on that.
llvm-svn: 255396
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Use the SP32 physical register as the base for FrameIndex
lowering. Update it and the __stack_pointer global var in the prolog and
epilog. Extend the mapping of virtual registers to wasm locals to
include the physical registers.
Rather than modify the target-independent PrologEpilogInserter (which
asserts that there are no virtual registers left) include a
slightly-modified copy for Wasm that does not have this assertion and
only clears the virtual registers if scavenging was needed (which of
course it isn't for wasm).
Differential Revision: http://reviews.llvm.org/D15344
llvm-svn: 255392
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
ADJCALLSTACK{DOWN,UP} (aka CALLSEQ_{START,END}) MIs are supposed to use
and def the stack pointer. Since they do not, all the nodes are being
eliminated by DeadMachineInstructionElim, so they aren't in the IR when
PrologEpilogInserter/eliminateCallFramePseudo needs them.
This change fixes that, but since RegStackify will not stackify across
them (and it runs early, before PEI), change LowerCall to only emit them
when the call frame size is > 0. That makes the current code work the
same way and makes code handled by D15344 also work the same way. We can
expand the condition beyond NumBytes > 0 in the future if needed.
Reviewers: sunfish, jfb
Subscribers: jfb, dschuff, llvm-commits
Differential Revision: http://reviews.llvm.org/D15459
llvm-svn: 255356
|
|
|
|
|
|
| |
change.
llvm-svn: 255253
|
|
|
|
|
|
| |
changes.
llvm-svn: 255252
|
|
|
|
| |
llvm-svn: 255251
|
|
|
|
| |
llvm-svn: 255250
|
|
|
|
|
|
|
|
| |
ISD::FCOPYSIGN permits its operands to have differing types, and DAGCombiner
uses this. Add some def : Pat rules to expand this out into an explicit
conversion and a normal copysign operation.
llvm-svn: 255220
|
|
|
|
|
|
| |
It is lowered to a libcall for now, but this is expected to change in the future.
llvm-svn: 255219
|
|
|
|
| |
llvm-svn: 255202
|
|
|
|
|
|
| |
We can now select sign_extend_inreg
llvm-svn: 255197
|
|
|
|
| |
llvm-svn: 255191
|
|
|
|
| |
llvm-svn: 255190
|
|
|
|
| |
llvm-svn: 255181
|
|
|
|
| |
llvm-svn: 255180
|
|
|
|
| |
llvm-svn: 255179
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reinteroduce the code for moving ARGUMENTS back to the top of the basic block.
While the ARGUMENTS physical register prevents sinking and scheduling from
moving them, it does not appear to be sufficient to prevent SelectionDAG from
moving them down in the initial schedule. This patch introduces a patch that
moves them back to the top immediately after SelectionDAG runs.
This is still hopefully a temporary solution. http://reviews.llvm.org/D14750 is
one alternative, though the review has not been favorable, and proposed
alternatives are longer-term and have other downsides.
This fixes the main outstanding -verify-machineinstrs failures, so it adds
-verify-machineinstrs to several tests.
Differential Revision: http://reviews.llvm.org/D15377
llvm-svn: 255125
|
|
|
|
| |
llvm-svn: 255119
|
|
|
|
|
|
| |
The bots are now running the torture tests properly. Bin all failures from the GCC C torture tests so that we can tackle failures and make the tree go red on regressions.
llvm-svn: 255111
|
|
|
|
| |
llvm-svn: 254999
|