| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
.s Test added.
llvm-svn: 123292
|
| |
|
|
| |
llvm-svn: 123276
|
| |
|
|
| |
llvm-svn: 123253
|
| |
|
|
| |
llvm-svn: 123246
|
| |
|
|
|
|
| |
predication code operands based on the "canonical mnemonic".
llvm-svn: 123239
|
| |
|
|
|
|
|
|
|
|
| |
carry setting flag from the mnemonic.
Note that this currently involves me disabling a number of working cases in
arm_instructions.s, this is a hopefully short term evil which will be rapidly
fixed (and greatly surpassed), assuming my current approach flies.
llvm-svn: 123238
|
| |
|
|
|
|
|
|
| |
restore the stack pointer from the frame pointer on thumbv6.
Fixes rdar://8819685
llvm-svn: 123196
|
| |
|
|
| |
llvm-svn: 123193
|
| |
|
|
| |
llvm-svn: 123189
|
| |
|
|
|
|
| |
instructions but are restricted pseudo forms.
llvm-svn: 123177
|
| |
|
|
|
|
| |
instructions but are restricted pseudo forms.
llvm-svn: 123176
|
| |
|
|
| |
llvm-svn: 123175
|
| |
|
|
| |
llvm-svn: 123171
|
| |
|
|
|
|
| |
and fixes here and there.
llvm-svn: 123170
|
| |
|
|
| |
llvm-svn: 123169
|
| |
|
|
|
|
|
|
| |
These functions not longer assert when passed 0, but simply return false instead.
No functional change intended.
llvm-svn: 123155
|
| |
|
|
| |
llvm-svn: 123048
|
| |
|
|
|
|
|
|
|
|
| |
Instead encode llvm IR level property "HasSideEffects" in an operand (shared
with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check
the operand when the instruction is an INLINEASM.
This allows memory instructions to be moved around INLINEASM instructions.
llvm-svn: 123044
|
| |
|
|
| |
llvm-svn: 123042
|
| |
|
|
| |
llvm-svn: 123040
|
| |
|
|
|
|
| |
Patch by Tim Northover.
llvm-svn: 123035
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also fix an off-by-one in SelectionDAGBuilder that was preventing shuffle
vectors from being translated to EXTRACT_SUBVECTOR.
Patch by Tim Northover.
The test changes are needed to keep those spill-q tests from testing aligned
spills and restores. If the only aligned stack objects are spill slots, we
no longer realign the stack frame. Prior to this patch, an EXTRACT_SUBVECTOR
was legalized by loading from the stack, which created an aligned frame index.
Now, however, there is nothing except the spill slot in the stack frame, so
I added an aligned alloca.
llvm-svn: 122995
|
| |
|
|
| |
llvm-svn: 122970
|
| |
|
|
| |
llvm-svn: 122969
|
| |
|
|
| |
llvm-svn: 122968
|
| |
|
|
|
|
|
| |
etc. takes an option OptSize. If OptSize is true, it would return
the inline limit for functions with attribute OptSize.
llvm-svn: 122952
|
| |
|
|
| |
llvm-svn: 122893
|
| |
|
|
| |
llvm-svn: 122794
|
| |
|
|
| |
llvm-svn: 122789
|
| |
|
|
|
|
|
|
|
| |
earlyclobber stuff. This should fix PRs 2313 and 8157.
Unfortunately, no testcase, since it'd be dependent on register
assignments.
llvm-svn: 122663
|
| |
|
|
|
|
| |
files in Target/ARM and Target/X86.
llvm-svn: 122623
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DAG scheduling during isel. Most new functionality is currently
guarded by -enable-sched-cycles and -enable-sched-hazard.
Added InstrItineraryData::IssueWidth field, currently derived from
ARM itineraries, but could be initialized differently on other targets.
Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is
active, and if so how many cycles of state it holds.
Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry
into the scheduler's available queue.
ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to
get information about it's SUnits, provides RecedeCycle for bottom-up
scheduling, correctly computes scoreboard depth, tracks IssueCount, and
considers potential stall cycles when checking for hazards.
ScheduleDAGRRList now models machine cycles and hazards (under
flags). It tracks MinAvailableCycle, drives the hazard recognizer and
priority queue's ready filter, manages a new PendingQueue, properly
accounts for stall cycles, etc.
llvm-svn: 122541
|
| |
|
|
| |
llvm-svn: 122539
|
| |
|
|
| |
llvm-svn: 122530
|
| |
|
|
| |
llvm-svn: 122524
|
| |
|
|
| |
llvm-svn: 122523
|
| |
|
|
|
|
|
|
| |
If the basic block containing the BCCi64 (or BCCZi64) instruction ends with
an unconditional branch, that branch needs to be deleted before appending
the expansion of the BCCi64 to the end of the block.
llvm-svn: 122521
|
| |
|
|
| |
llvm-svn: 122513
|
| |
|
|
| |
llvm-svn: 122456
|
| |
|
|
|
|
|
|
|
|
|
| |
Type legalization splits up i64 values into pairs of i32 values, which leads
to poor quality code when inserting or extracting i64 vector elements.
If the vector element is loaded or stored, it can be treated as an f64 value
and loaded or stored directly from a VPR register. Use the pre-legalization
DAG combiner to cast those vector elements to f64 types so that the type
legalizer won't mess them up. Radar 8755338.
llvm-svn: 122319
|
| |
|
|
|
|
| |
Fixes rdar://8782223
llvm-svn: 122313
|
| |
|
|
|
|
|
| |
something that just glues two nodes together, even if it is
sometimes used for flags.
llvm-svn: 122310
|
| |
|
|
|
|
|
|
|
| |
to be the one we want to use. bugpoint reduced testcase is a little large,
I'll see if I can simplify it down more.
Fixes part of rdar://8782207
llvm-svn: 122307
|
| |
|
|
|
|
|
|
|
| |
tPseudoInst class, its size was changed from "special" to "2 bytes". This is
incorrect because the jump table will no longer be taken into account when
calculating branch offsets.
<rdar://problem/8782216>
llvm-svn: 122303
|
| |
|
|
| |
llvm-svn: 122302
|
| |
|
|
| |
llvm-svn: 122147
|
| |
|
|
| |
llvm-svn: 122134
|
| |
|
|
|
|
|
|
|
|
|
| |
ARM::tMOVgpr2gpr. But this check didn't change. As a result, we were getting
misaligned references to the jump table from an ADR instruction.
There is a test case, but unfortunately it's sensitive to random code changes.
<rdar://problem/8782223>
llvm-svn: 122131
|
| |
|
|
| |
llvm-svn: 122129
|
| |
|
|
| |
llvm-svn: 122119
|