| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Do not use LiveIntervals to recalculate kills, because that cannot be
done accurately without implicit uses on predicated instructions.
llvm-svn: 285409
|
|
|
|
| |
llvm-svn: 285297
|
|
|
|
|
|
|
|
| |
This is a function to go backwards in a block to find the first
instruction in a bundle, so iterator is a more natural choice for
parameter/return rather than a reference to a MachineInstruction.
llvm-svn: 285051
|
|
|
|
|
|
|
|
| |
(Const)?MIOperands is equivalent to the C++ style
MachineInstr::mop_iterator. Use the latter for consistency except for a
few callers of MIOperands::analyzePhysReg().
llvm-svn: 285029
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
take a GlobalObject.
These functions are about classifying a global which will actually be
emitted, so it does not make sense for them to take a GlobalValue which may
for example be an alias.
Change the Mach-O object writer and the Hexagon, Lanai and MIPS backends to
look through aliases before using TargetLoweringObjectFile interfaces. These
are functional changes but all appear to be bug fixes.
Differential Revision: https://reviews.llvm.org/D25917
llvm-svn: 285006
|
|
|
|
|
|
|
| |
David Blaikie pointed out that we get them for free without having to
write anything.
llvm-svn: 284996
|
|
|
|
| |
llvm-svn: 284972
|
|
|
|
| |
llvm-svn: 284857
|
|
|
|
|
|
|
|
|
|
|
|
| |
After register allocation it is possible to have a spill of a register
that is only partially defined. That in itself it fine, but creates a
problem for double vector registers. Stores of such registers are pseudo
instructions that are expanded into pairs of individual vector stores,
and in case of a partially defined source, one of the stores may use
an entirely undefined register. To avoid this, track the defined parts
and only generate actual stores for those.
llvm-svn: 284841
|
|
|
|
|
|
|
|
|
|
| |
All of these existed because MSVC 2013 was unable to synthesize default
move ctors. We recently dropped support for it so all that error-prone
boilerplate can go.
No functionality change intended.
llvm-svn: 284721
|
|
|
|
|
|
| |
Remove the portability macro now that it is unused.
llvm-svn: 284681
|
|
|
|
|
|
|
|
|
|
| |
This required reengineering of some of the part of liveness calculation,
including fixing some issues caused by the limitations of the previous
approach. The current code is not necessarily the fastest, but it should
be functionally correct (at least more so than before). The compile-time
performance will be addressed in the future.
llvm-svn: 284609
|
|
|
|
| |
llvm-svn: 284522
|
|
|
|
| |
llvm-svn: 284264
|
|
|
|
| |
llvm-svn: 284262
|
|
|
|
|
|
|
|
|
| |
Use PackedRegisterRef to store the register information in the graph nodes.
This commit also removes support for virtual registers. It has never been
tested or used. It will be possible to add it back if there is a need.
llvm-svn: 284255
|
|
|
|
| |
llvm-svn: 283814
|
|
|
|
|
|
|
|
| |
This avoids "static initialization order fiasco"
Differential Revision: https://reviews.llvm.org/D25412
llvm-svn: 283702
|
|
|
|
| |
llvm-svn: 283691
|
|
|
|
|
|
| |
restriction rather than implying it from TypeJR.
llvm-svn: 283665
|
|
|
|
| |
llvm-svn: 283582
|
|
|
|
| |
llvm-svn: 283515
|
|
|
|
| |
llvm-svn: 283514
|
|
|
|
| |
llvm-svn: 283507
|
|
|
|
|
|
| |
Doing so will result in the two-address pass generating incorrect code.
llvm-svn: 283463
|
|
|
|
| |
llvm-svn: 283446
|
|
|
|
| |
llvm-svn: 283445
|
|
|
|
| |
llvm-svn: 283371
|
|
|
|
|
|
|
|
| |
Each shadow only represents data flow that is restricted to its reaching
def. Propagating more than that could lead to spurious register liveness,
resulting in extra (incorrectly) block live-ins.
llvm-svn: 283143
|
|
|
|
|
|
| |
Print target basic block for a branch.
llvm-svn: 283126
|
|
|
|
| |
llvm-svn: 283122
|
|
|
|
| |
llvm-svn: 283018
|
|
|
|
| |
llvm-svn: 283004
|
|
|
|
| |
llvm-svn: 282520
|
|
|
|
|
|
|
|
|
|
|
|
| |
A landing pad can have live-in registers that are defined by the runtime,
not the program (exception pointer register and exception selector
register). Make sure to recognize that case and not link these registers
with any defs in the program.
Each landing pad will have phi nodes added at the beginning to provide
definitions of these registers, but the uses of those phi nodes will not
have any reaching defs.
llvm-svn: 282519
|
|
|
|
|
|
|
| |
Use lane masks for calculating covering and aliasing of register
references.
llvm-svn: 282194
|
|
|
|
|
|
|
|
|
| |
USR_OVF is a subregister of USR, which is a member of CtrRegs. Having both
a register and its proper subregister in the same register class has bad
consequences for lane mask calculation: based solely on the lane mask info,
USR_OVF would not appear to be a subregister of USR.
llvm-svn: 282192
|
|
|
|
| |
llvm-svn: 282191
|
|
|
|
| |
llvm-svn: 282190
|
|
|
|
|
|
| |
Added BoundaryNode check to isBestZeroLatency function.
llvm-svn: 281825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recommitting after fixing AsmParser initialization and X86 inline asm
error cleanup.
Allow errors to be deferred and emitted as part of clean up to simplify
and shorten Assembly parser code. This will allow error messages to be
emitted in helper functions and be modified by the caller which has
better context.
As part of this many minor cleanups to the Parser:
* Unify parser cleanup on error
* Add Workaround for incorrect return values in ParseDirective instances
* Tighten checks on error-signifying return values for parser functions
and fix in-tree TargetParsers to be more consistent with the changes.
* Fix AArch64 test cases checking for spurious error messages that are
now fixed.
These changes should be backwards compatible with current Target Parsers
so long as the error status are correctly returned in appropriate
functions.
Reviewers: rnk, majnemer
Subscribers: aemerson, jyknight, llvm-commits
Differential Revision: https://reviews.llvm.org/D24047
llvm-svn: 281762
|
|
|
|
|
|
| |
TLOF API accordingly.
llvm-svn: 281708
|
|
|
|
| |
llvm-svn: 281535
|
|
|
|
|
|
|
| |
analyzeBranch was renamed to use lowercase first, rename
the related set to match.
llvm-svn: 281506
|
|
|
|
|
|
|
|
|
| |
The main change is to return the code size from
InsertBranch/RemoveBranch.
Patch mostly by Tim Northover
llvm-svn: 281505
|
|
|
|
| |
llvm-svn: 281495
|
|
|
|
| |
llvm-svn: 281493
|
|
|
|
|
|
| |
to copy the new isAdd field in the tablegen data structure.
llvm-svn: 281447
|
|
|
|
|
|
|
| |
- Expand SELECT_CC and BR_CC for vector types.
- Implement TLI::isShuffleMaskLegal.
llvm-svn: 281397
|
|
|
|
| |
llvm-svn: 281361
|