| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 219422
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the PBQPBuilder class and its subclasses and replaces them
with a composable constraints class: PBQPRAConstraint. This allows constraints
that are only required for optimisation (e.g. coalescing, soft pairing) to be
mixed and matched.
This patch also introduces support for target writers to supply custom
constraints for their targets by overriding a TargetSubtargetInfo method:
std::unique_ptr<PBQPRAConstraints> getCustomPBQPConstraints() const;
This patch should have no effect on allocations.
llvm-svn: 219421
|
| |
|
|
| |
llvm-svn: 219419
|
| |
|
|
|
|
| |
only needed there.
llvm-svn: 219418
|
| |
|
|
| |
llvm-svn: 219414
|
| |
|
|
| |
llvm-svn: 219413
|
| |
|
|
|
|
|
|
|
|
|
| |
This introduces access to the AbstractSPDies map from DwarfDebug so
DwarfCompileUnit can access it. Eventually this'll sink down to
DwarfFile, but it'll still be generically accessible - not much
encapsulation to provide it. (constructInlinedScopeDIE could stay
further up, in DwarfFile to avoid exposing this - but I don't think
that's particularly better)
llvm-svn: 219411
|
| |
|
|
|
|
| |
remove cached or unnecessary TargetMachines.
llvm-svn: 219387
|
| |
|
|
|
|
|
| |
the TargetMachine to a TargetSubtargetInfo since everything
we wanted is off of that.
llvm-svn: 219382
|
| |
|
|
|
|
| |
replace them with calls off of the MachineFuncton.
llvm-svn: 219381
|
| |
|
|
|
|
| |
the now unused TargetMachine variable.
llvm-svn: 219379
|
| |
|
|
|
|
| |
than off the target machine.
llvm-svn: 219378
|
| |
|
|
|
|
| |
via caching TargetLowering and using the MachineFunction.
llvm-svn: 219375
|
| |
|
|
| |
llvm-svn: 219372
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(& add a few accessors/make a couple of things public for this - it's a
bit of a toss-up, but I think I prefer it this way, keeping some more of
the meaty code down in DwarfCompileUnit - if only to make for smaller
implementation files, etc)
I think we could simplify range handling a bit if we removed the range
lists from each unit and just put a single range list on DwarfDebug,
similar to address pooling.
llvm-svn: 219370
|
| |
|
|
| |
llvm-svn: 219368
|
| |
|
|
|
|
| |
the DAG combiner.
llvm-svn: 219367
|
| |
|
|
|
|
| |
the MachineFunction where it's already cached.
llvm-svn: 219366
|
| |
|
|
|
|
| |
needed.
llvm-svn: 219364
|
| |
|
|
| |
llvm-svn: 219356
|
| |
|
|
|
|
| |
DwarfUnit::addSectionLabel down into DwarfCompileUnit::addSectionLabel
llvm-svn: 219351
|
| |
|
|
|
|
| |
unused.
llvm-svn: 219347
|
| |
|
|
|
|
|
|
|
| |
DwarfCompileUnit
Funnily enough, I copied it, but didn't actually remove the original in
r219345. Let's do that.
llvm-svn: 219346
|
| |
|
|
|
|
|
|
|
|
| |
One of many steps to generalize subprogram emission to both the DWO and
non-DWO sections (to emit -gmlt-like data under fission). Once the
functions are pushed down into DwarfCompileUnit some of the data
structures will be pushed at least into DwarfFile so that they can be
unique per-file, allowing emission to both files independently.
llvm-svn: 219345
|
| |
|
|
|
|
| |
a cached TLI instance.
llvm-svn: 219342
|
| |
|
|
|
|
|
| |
Original patch by Andrey Guskov!
http://reviews.llvm.org/D5651
llvm-svn: 219327
|
| |
|
|
|
|
|
| |
SelectionDAG in SelectionDAGBuilder rather than going through
the TargetMachine for lookup.
llvm-svn: 219292
|
| |
|
|
|
|
|
| |
MachineFunction rather than a lookup on the TargetMachine
to avoid unnecessary lookups.
llvm-svn: 219291
|
| |
|
|
|
|
| |
cached variables and a single call in the constructor.
llvm-svn: 219287
|
| |
|
|
|
|
| |
TargetMachine again.
llvm-svn: 219285
|
| |
|
|
|
|
| |
calls to getTargetLowering() with the cached variable.
llvm-svn: 219284
|
| |
|
|
|
|
|
| |
propagate. Also use the TargetSubtargetInfo and the MachineFunction
and move TargetRegisterInfo query closer to uses.
llvm-svn: 219273
|
| |
|
|
|
|
|
|
|
| |
thing we do inside selection dag. This code needs to be
migrated to queries on the function rather than global
data, but this organizes things before we start grabbing
the subtarget.
llvm-svn: 219271
|
| |
|
|
|
|
| |
inside init rather than have it passed in as an argument.
llvm-svn: 219270
|
| |
|
|
|
|
| |
during init rather than construction time.
llvm-svn: 219262
|
| |
|
|
| |
llvm-svn: 219221
|
| |
|
|
| |
llvm-svn: 219220
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
within a function, lead to the function itself.
Let me tell you a tale...
Originally committed in r211723 after discovering a nasty case of weird
scoping due to inlining, this was reverted in r211724 after it fired in
ASan/compiler-rt.
(minor diversion where I accidentally committed/reverted again in
r211871/r211873)
After further testing and fixing bugs in ArgumentPromotion (r211872) and
Inlining (r212065) it was recommitted in r212085. Reverted in r212089
after the sanitizer buildbots still showed problems.
Fixed another bug in ArgumentPromotion (r212128) found by this
assertion.
Recommitted in r212205, reverted in r212226 after it crashed some more
on sanitizer buildbots.
Fix clang some more in r212761.
Recommitted in r212776, reverted in r212793. ASan failures.
Recommitted in r213391, reverted in r213432, trying to reproduce flakey
ASan build failure.
Fixed bugs in r213805 (ArgPromo + DebugInfo), r213952
(LiveDebugVariables strips dbg_value intrinsics in functions not
described by debug info).
Recommitted in r214761, reverted in r214999, flakey failure on Windows
buildbot.
Fixed DeadArgElimination + DebugInfo bug in r219210.
Recommitting and hoping that's the last of it.
[That one burned down, fell over, then sank into the swamp.]
llvm-svn: 219215
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch's author points out that, despite the function's documentation,
getSetCCResultType is only used to get the SETCC result type (with one
here-removed problematic exception). In one case, getSetCCResultType was being
used to get the predicate type to use for a SELECT node, and then
SIGN_EXTENDing (or truncating) to get the input predicate to match that type.
Unfortunately, this was happening inside visitSIGN_EXTEND, and creating new
SIGN_EXTEND nodes was causing an infinite loop. In addition, this behavior was
wrong if a target was not using ZeroOrNegativeOneBooleanContent. Lastly, the
extension/truncation seems unnecessary here: SELECT is defined as:
Select(COND, TRUEVAL, FALSEVAL). If the type of the boolean COND is not i1
then the high bits must conform to getBooleanContents.
So here we remove this use of getSetCCResultType and update
getSetCCResultType's documentation to reflect its actual uses.
Patch by deadal nix!
llvm-svn: 219141
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The motivation is to recognize code such as this from /llvm/projects/test-suite/SingleSource/Benchmarks/BenchmarkGame/n-body.c:
float distance = sqrt(dx * dx + dy * dy + dz * dz);
float mag = dt / (distance * distance * distance);
Without this patch, we don't match the sqrt as a reciprocal sqrt, so for PPC the new testcase in this patch produces:
addis 3, 2, .LCPI4_2@toc@ha
lfs 4, .LCPI4_2@toc@l(3)
addis 3, 2, .LCPI4_1@toc@ha
lfs 0, .LCPI4_1@toc@l(3)
fcmpu 0, 1, 4
beq 0, .LBB4_2
# BB#1:
frsqrtes 4, 1
addis 3, 2, .LCPI4_0@toc@ha
lfs 5, .LCPI4_0@toc@l(3)
fnmsubs 13, 1, 5, 1
fmuls 6, 4, 4
fmadds 1, 13, 6, 5
fmuls 1, 4, 1
fres 4, 1 <--- reciprocal of reciprocal square root
fnmsubs 1, 1, 4, 0
fmadds 4, 4, 1, 4
.LBB4_2:
fmuls 1, 4, 2
fres 2, 1
fnmsubs 0, 1, 2, 0
fmadds 0, 2, 0, 2
fmuls 1, 3, 0
blr
After the patch, this simplifies to:
frsqrtes 0, 1
addis 3, 2, .LCPI4_1@toc@ha
fres 5, 2
lfs 4, .LCPI4_1@toc@l(3)
addis 3, 2, .LCPI4_0@toc@ha
lfs 7, .LCPI4_0@toc@l(3)
fnmsubs 13, 1, 4, 1
fmuls 6, 0, 0
fnmsubs 2, 2, 5, 7
fmadds 1, 13, 6, 4
fmadds 2, 5, 2, 5
fmuls 0, 0, 1
fmuls 0, 0, 2
fmuls 1, 3, 0
blr
Differential Revision: http://reviews.llvm.org/D5628
llvm-svn: 219139
|
| |
|
|
|
|
|
|
|
| |
of std::set.
And iterate over the smaller map instead of the larger set first. Reduces the time spent in
calculateDbgValueHistory by 30-40%.
llvm-svn: 219123
|
| |
|
|
|
|
|
|
| |
It was just calling a bunch of DwarfUnit functions anyway, as can be
seen by the simplification of removing "TheCU" from all the function
calls in the implementation.
llvm-svn: 219103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that are unused.
This allows the combiner to delete math feeding shuffles where the math
isn't actually necessary. This improves some of the vperm2x128 tests
that regressed when the vector shuffle lowering started actually
generating vperm instructions rather than forcibly decomposing them.
Sadly, this isn't enough to get this *really* right because we still
form a completely unnecessary permutation. To fix that, we also need to
fold shuffles which just rearrange concatenated or inserted subvectors.
llvm-svn: 219086
|
| |
|
|
|
|
| |
This became unnecessary/unused in r208636
llvm-svn: 219085
|
| |
|
|
|
|
| |
weirdness exposed by it.
llvm-svn: 219068
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 219061
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This requires exposing some of the current function state from
DwarfDebug. I hope there's not too much of that to expose as I go
through all the functions, but it still seems nicer to expose singular
data down to multiple consumers, than have consumers expose raw mapping
data structures up to DwarfDebug for building subprograms.
Part of a series of refactoring to allow subprograms in both the
skeleton and dwo CUs under Fission.
llvm-svn: 219060
|
| |
|
|
| |
llvm-svn: 219059
|
| |
|
|
|
|
|
| |
One of many things to sink down into DwarfCompileUnit to allow handling
of subprograms in both the skeleton and dwo CU under Fission.
llvm-svn: 219058
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In preparation for sinking all the subprogram emission code down from
DwarfDebug into DwarfCompileUnit, this will avoid bloating
DwarfUnit.h/cpp greatly and make concerns a bit more clear/isolated.
(sinking this handling down is part of the work to handle emitting
minimal subprograms for -gmlt-like data into the skeleton CU under
fission)
llvm-svn: 219057
|