| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Broken parent scope pointers in inlined DIVariables can cause
ensureAbstractVariableIsCreated to insert new abstract scopes, thus
invalidating the iterator in this loop and leading to hard-to-debug
crashes. Useful when manually reducing IR for testcases.
llvm-svn: 219628
|
|
|
|
| |
llvm-svn: 219627
|
|
|
|
| |
llvm-svn: 219626
|
|
|
|
| |
llvm-svn: 219588
|
|
|
|
|
|
|
|
|
|
|
| |
instructions within a function, lead to the function itself."
This invariant is violated (& the assertions fire) on some Objective C++
in the test-suite. Reverting while I investigate.
This reverts commit r219215.
llvm-svn: 219523
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a logic error in the MachineScheduler found by Steve Montgomery (and
confirmed by Andy). This has gone unfixed for months because the fix has been
found to introduce some small performance regressions. However, Andy has
recommended that, at this point, we fix this to avoid further dependence on the
incorrect behavior (and then follow-up separately on any regressions), and I
agree.
Fixes PR18883.
llvm-svn: 219512
|
|
|
|
| |
llvm-svn: 219510
|
|
|
|
|
|
| |
This helps read the comments and understand the code in a natural order
llvm-svn: 219508
|
|
|
|
| |
llvm-svn: 219505
|
|
|
|
| |
llvm-svn: 219492
|
|
|
|
|
|
| |
DwarfCompileUnit.
llvm-svn: 219477
|
|
|
|
|
|
| |
DwarfCompileUnit.
llvm-svn: 219476
|
|
|
|
| |
llvm-svn: 219466
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the fast-math implementation for calculating sqrt(x) from:
y = 1 / (1 / sqrt(x))
to:
y = x * (1 / sqrt(x))
This has 2 benefits: less code / faster code and one less estimate instruction
that may lose precision.
The only target that will be affected (until http://reviews.llvm.org/D5658 is approved)
is PPC. The difference in codegen for PPC is 2 less flops for a single-precision sqrtf
or vector sqrtf and 4 less flops for a double-precision sqrt.
We also eliminate a constant load and extra register usage.
Differential Revision: http://reviews.llvm.org/D5682
llvm-svn: 219445
|
|
|
|
| |
llvm-svn: 219444
|
|
|
|
| |
llvm-svn: 219440
|
|
|
|
| |
llvm-svn: 219437
|
|
|
|
| |
llvm-svn: 219436
|
|
|
|
| |
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
|