| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
DIDescriptor::ValidDebugInfo
-Create DebugLocs without the need to have a DwarfWriter around
llvm-svn: 70682
|
| |
|
|
| |
llvm-svn: 70661
|
| |
|
|
|
|
|
|
|
| |
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645
|
| |
|
|
|
|
|
| |
to make the copy constructor and destructor protected, and corresponding
adjustments to the unittests.
llvm-svn: 70644
|
| |
|
|
| |
llvm-svn: 70643
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.
llvm-svn: 70636
|
| |
|
|
|
|
|
| |
it also forget any SCEVs associated with loop-header PHIs in the loop,
as they may be dependent on trip count information.
llvm-svn: 70633
|
| |
|
|
|
|
|
|
| |
apparently
helps some problems on win32 platforms (PR4119)
llvm-svn: 70603
|
| |
|
|
| |
llvm-svn: 70572
|
| |
|
|
| |
llvm-svn: 70557
|
| |
|
|
|
|
| |
is associated with a SCEV expansion.
llvm-svn: 70556
|
| |
|
|
|
|
| |
Instructions.
llvm-svn: 70552
|
| |
|
|
| |
llvm-svn: 70522
|
| |
|
|
|
|
| |
explains what the pointer tagging in Use is for.
llvm-svn: 70521
|
| |
|
|
|
|
|
|
| |
-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable*
-Remove DwarfWriter::getOrCreateSourceID
-Make necessary changes for the above (fix callsites, etc.)
llvm-svn: 70520
|
| |
|
|
|
|
| |
comment a bit.
llvm-svn: 70515
|
| |
|
|
|
|
|
|
|
| |
classes.
This is implemented as a function rather than a method on TargetRegisterClass
because it is symmetric in its arguments.
llvm-svn: 70512
|
| |
|
|
| |
llvm-svn: 70510
|
| |
|
|
|
|
|
|
|
|
|
|
| |
compute an upper-bound value for the trip count, in addition to
the actual trip count. Use this to allow getZeroExtendExpr and
getSignExtendExpr to fold casts in more cases.
This may eventually morph into a more general value-range
analysis capability; there are certainly plenty of places where
more complete value-range information would allow more folding.
llvm-svn: 70509
|
| |
|
|
|
|
| |
df_ext_iterator<Value*, SmallPtrSet<const Value*, 16> >
llvm-svn: 70496
|
| |
|
|
| |
llvm-svn: 70491
|
| |
|
|
|
|
| |
class.
llvm-svn: 70488
|
| |
|
|
| |
llvm-svn: 70459
|
| |
|
|
| |
llvm-svn: 70445
|
| |
|
|
|
|
|
| |
which better identifies what the optimization is doing. And is more flexible for
future uses.
llvm-svn: 70440
|
| |
|
|
| |
llvm-svn: 70437
|
| |
|
|
| |
llvm-svn: 70408
|
| |
|
|
| |
llvm-svn: 70391
|
| |
|
|
| |
llvm-svn: 70379
|
| |
|
|
| |
llvm-svn: 70372
|
| |
|
|
| |
llvm-svn: 70366
|
| |
|
|
| |
llvm-svn: 70354
|
| |
|
|
|
|
|
| |
an optimization level instead of a simple boolean telling it to generate code
"fast" or the other type of "fast".
llvm-svn: 70347
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.
llvm-svn: 70343
|
| |
|
|
| |
llvm-svn: 70340
|
| |
|
|
| |
llvm-svn: 70309
|
| |
|
|
| |
llvm-svn: 70297
|
| |
|
|
|
|
|
|
|
|
| |
TargetRegisterClass method.
Also make the method non-asserting. It will return NULL when given an invalid subreg index.
The method is needed by an upcoming patch.
llvm-svn: 70296
|
| |
|
|
| |
llvm-svn: 70275
|
| |
|
|
|
|
|
|
|
|
|
| |
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'm not 100% sure if it's necessary to change it there...
llvm-svn: 70270
|
| |
|
|
|
|
|
| |
the comparison operators were not only unnecessary in the presence of the
implicit conversion; they caused ambiguous overload errors. So I deleted them.
llvm-svn: 70243
|
| |
|
|
|
|
| |
only llvm-bcanalyzer wants this info.
llvm-svn: 70239
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR2957
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask. A value of -1 represents UNDEF.
In addition to eliminating the creation of illegal BUILD_VECTORS just to
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.
llvm-svn: 70225
|
| |
|
|
|
|
|
|
|
| |
BLOCKNAME and SETRECORDNAME. This allows a bitcode
file to be self describing with pretty names for
records and blocks in addition to numbers. This
enhances llvm-bcanalyzer to use this to print prettily.
llvm-svn: 70165
|
| |
|
|
| |
llvm-svn: 70159
|
| |
|
|
|
|
|
|
|
| |
state out of the BitstreamReader class into a BitstreamCursor class.
Doing this allows the client to have multiple cursors into the same
file, each with potentially different live block stacks and
abbreviation records.
llvm-svn: 70157
|
| |
|
|
| |
llvm-svn: 70151
|
| |
|
|
| |
llvm-svn: 70148
|
| |
|
|
|
|
| |
64-bit build.
llvm-svn: 70147
|
| |
|
|
| |
llvm-svn: 70138
|