| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Part of rdar://9797999
llvm-svn: 163667
|
| |
|
|
| |
llvm-svn: 163654
|
| |
|
|
|
|
|
|
| |
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"
No functional change. Update r163339.
llvm-svn: 163653
|
| |
|
|
| |
llvm-svn: 163649
|
| |
|
|
| |
llvm-svn: 163648
|
| |
|
|
|
|
| |
Add support in the EmitMSInlineAsmStr() function for handling integer consts.
llvm-svn: 163645
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a pair of switch/branch where both depend on the value of the same variable and
the default case of the first switch/branch goes to the second switch/branch.
Code clean up and fixed a few issues:
1> handling the case where some cases of the 2nd switch are invalidated
2> correctly calculate the weight for the 2nd switch when it is a conditional eq
Testing case is modified from Alastair's original patch.
llvm-svn: 163635
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sub-register lane masks are bitmasks that can be used to determine if
two sub-registers of a virtual register will overlap. For example, ARM's
ssub0 and ssub1 sub-register indices don't overlap each other, but both
overlap dsub0 and qsub0.
The lane masks will be accurate on most targets, but on targets that use
sub-register indexes in an irregular way, the masks may conservatively
report that two sub-register indices overlap when the eventually
allocated physregs don't.
Irregular register banks also mean that the bits in a lane mask can't be
mapped onto register units, but the concept is similar.
llvm-svn: 163630
|
| |
|
|
|
|
|
|
| |
Apparently, NumSubRegIndices was completely unused before. Adjust it by
one to include the null subreg index, just like getNumRegs() includes
the null register.
llvm-svn: 163628
|
| |
|
|
|
|
| |
of lifetime markers. Disabling the pass for now.
llvm-svn: 163623
|
| |
|
|
| |
llvm-svn: 163617
|
| |
|
|
| |
llvm-svn: 163616
|
| |
|
|
|
|
| |
functions. No functional change.
llvm-svn: 163596
|
| |
|
|
|
|
| |
table size.
llvm-svn: 163594
|
| |
|
|
| |
llvm-svn: 163593
|
| |
|
|
|
|
| |
after using bugpoint to reduce the confusion presented by the original names, which no longer mean what they used to.
llvm-svn: 163592
|
| |
|
|
|
|
| |
Factor similar code out of FNEG DAG combiner.
llvm-svn: 163587
|
| |
|
|
|
|
| |
Patch by Brad Smith!
llvm-svn: 163584
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Hexagon target decided to use a lot of functionality from the
target-independent scheduler. That's fine, and other targets should be
able to do the same. This reorg and API update makes that easy.
For the record, ScheduleDAGMI was not meant to be subclassed. Instead,
new scheduling algorithms should be able to implement
MachineSchedStrategy and be done. But if need be, it's nice to be
able to extend ScheduleDAGMI, so I also made that easier. The target
scheduler is somewhat more apt to break that way though.
llvm-svn: 163580
|
| |
|
|
|
|
| |
right now. We'll fix PR13303 a different way.
llvm-svn: 163570
|
| |
|
|
| |
llvm-svn: 163569
|
| |
|
|
| |
llvm-svn: 163568
|
| |
|
|
| |
llvm-svn: 163567
|
| |
|
|
| |
llvm-svn: 163561
|
| |
|
|
| |
llvm-svn: 163557
|
| |
|
|
| |
llvm-svn: 163556
|
| |
|
|
|
|
| |
and InlineAsmVariant don't match.
llvm-svn: 163550
|
| |
|
|
| |
llvm-svn: 163547
|
| |
|
|
| |
llvm-svn: 163545
|
| |
|
|
|
|
| |
and update the printOperand() function accordingly.
llvm-svn: 163544
|
| |
|
|
| |
llvm-svn: 163542
|
| |
|
|
| |
llvm-svn: 163539
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The ARM backend can eliminate cmp instructions by reusing flags from a
nearby sub instruction with similar arguments.
Don't do that if the sub is predicated - the flags are not written
unconditionally.
<rdar://problem/12263428>
llvm-svn: 163535
|
| |
|
|
| |
llvm-svn: 163532
|
| |
|
|
|
|
| |
properly.
llvm-svn: 163530
|
| |
|
|
|
|
| |
- Fix an remaining issue of PR11674 as well
llvm-svn: 163528
|
| |
|
|
|
|
| |
Improve AQ instruction selection in the Hexagon MI scheduler.
llvm-svn: 163523
|
| |
|
|
|
|
| |
This folding happens as early as possible for performance reasons, and to make sure it isn't foiled by other transforms (e.g. forming FMAs).
llvm-svn: 163519
|
| |
|
|
| |
llvm-svn: 163518
|
| |
|
|
|
|
|
|
| |
- If a boolean value is generated from CMOV and tested as boolean value,
simplify the use of test result by referencing the original condition.
RDRAND intrinisc is one of such cases.
llvm-svn: 163516
|
| |
|
|
|
|
| |
concat_vectors, and a followup bug with SelectionDAG::getNode() creating nodes with invalid types.
llvm-svn: 163511
|
| |
|
|
| |
llvm-svn: 163510
|
| |
|
|
| |
llvm-svn: 163509
|
| |
|
|
|
|
| |
intervals twice or to theirself.
llvm-svn: 163508
|
| |
|
|
|
|
| |
single basic block.
llvm-svn: 163507
|
| |
|
|
|
|
|
|
| |
undefined or zeroinitializer.
I've added the "zeroinitializer" case in this patch.
llvm-svn: 163506
|
| |
|
|
| |
llvm-svn: 163504
|
| |
|
|
| |
llvm-svn: 163503
|
| |
|
|
|
|
|
|
| |
- The C API should be stable
- InlineAsm::AsmDialect is not exposed to C
- The function didn't match the prototype so this was unreachable code
llvm-svn: 163502
|
| |
|
|
| |
llvm-svn: 163496
|