| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 286009
|
|
|
|
|
|
|
|
| |
Quite sad we still aren't really using aggressive dead code warnings
from Clang that we could potentially use to catch this and so many other
things.
llvm-svn: 285936
|
|
|
|
| |
llvm-svn: 285846
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: beanz, lattner, jlebar
Subscribers: jholewinski, llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D26235
llvm-svn: 285832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While bootstrapping Clang with recent `gcc 6.2.0` I found a bug related to misleading indentation.
I believe, a pair of `{}` was forgotten, especially given the above similar piece of code:
```
if (!RDef || !HII->isPredicable(*RDef)) {
Done = coalesceRegisters(RD, RegisterRef(S1));
if (Done) {
UpdRegs.insert(RD.Reg);
UpdRegs.insert(S1.getReg());
}
}
```
Reviewers: kparzysz
Differential Revision: https://reviews.llvm.org/D26204
llvm-svn: 285794
|
|
|
|
|
|
|
|
| |
These interfaces are no longer used.
Differential Revision: https://reviews.llvm.org/D26222
llvm-svn: 285774
|
|
|
|
|
|
|
|
| |
For example, rename s6Ext to s6_0Ext. The names for shifted integers
include the underscore and this will make the naming consistent. It
also exposed a few duplicates that were removed.
llvm-svn: 285728
|
|
|
|
| |
llvm-svn: 285654
|
|
|
|
| |
llvm-svn: 285588
|
|
|
|
|
|
|
| |
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
|