| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 156158
|
| |
|
|
| |
llvm-svn: 156157
|
| |
|
|
| |
llvm-svn: 156156
|
| |
|
|
|
|
| |
Also combine the code in the 'assert' statement.
llvm-svn: 156155
|
| |
|
|
| |
llvm-svn: 156154
|
| |
|
|
| |
llvm-svn: 156153
|
| |
|
|
|
|
| |
This information in now computed by TableGen.
llvm-svn: 156152
|
| |
|
|
|
|
|
|
| |
This manually enumerated list of super-register classes has been
superceeded by the automatically computed super-register class masks
available through SuperRegClassIterator.
llvm-svn: 156151
|
| |
|
|
|
|
| |
using cmake+ninja, since ninja buffers the compiler output.
llvm-svn: 156150
|
| |
|
|
| |
llvm-svn: 156149
|
| |
|
|
|
|
| |
in the conditional.
llvm-svn: 156148
|
| |
|
|
|
|
|
|
| |
The masks returned by SuperRegClassIterator are computed automatically
by TableGen. This is better than depending on the manually specified
SuperRegClasses.
llvm-svn: 156147
|
| |
|
|
|
|
|
| |
The TargetLowering construction needs to use a valid TargetRegisterInfo
instance.
llvm-svn: 156146
|
| |
|
|
|
|
| |
rdar://11353109
llvm-svn: 156145
|
| |
|
|
|
|
|
|
| |
This iterator class provides a more abstract interface to the (Idx,
Mask) lists of super-registers for a register class. The layout of the
tables shouldn't be exposed to clients.
llvm-svn: 156144
|
| |
|
|
| |
llvm-svn: 156143
|
| |
|
|
|
|
|
| |
was removed in r155969 to address a deficiency of RecursiveASTVisitor
prior to recent changes on it.
llvm-svn: 156142
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
minimal disruption on its clients.
Unlike the previous data-recursive scheme, Traverse*Stmt methods are
always getting called. The base methods of RecursiveASTVisitor will enqueue
the sub-statements instead of calling TraverseStmt on them.
Clients that override a Traverse*Stmt method and call TraverseStmt will
still function as function-recursive traversal; if a client wants to
enqueue a sub-statement in its override method it can do it like this:
[inside the override method]
StmtQueueAction StmtQueue(*this);
StmtQueue.queue(Stmt->getSubStmt());
Should address rdar://11179167.
llvm-svn: 156141
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
minor behavior changes with this, but nothing I have seen evidence of in
the wild or expect to be meaningful. The real goal is unifying our logic
and simplifying the interfaces. A summary of the changes follows:
- Make 'callIsSmall' actually accept a callsite so it can handle
intrinsics, and simplify callers appropriately.
- Nuke a completely bogus declaration of 'callIsSmall' that was still
lurking in InlineCost.h... No idea how this got missed.
- Teach the 'isInstructionFree' about the various more intelligent
'free' heuristics that got added to the inline cost analysis during
review and testing. This mostly surrounds int->ptr and ptr->int casts.
- Switch most of the interesting parts of the inline cost analysis that
were essentially computing 'is this instruction free?' to use the code
metrics routine instead. This way we won't keep duplicating logic.
All of this is motivated by the desire to allow other passes to compute
a roughly equivalent 'cost' metric for a particular basic block as the
inline cost analysis. Sadly, re-using the same analysis for both is
really messy because only the actual inline cost analysis is ever going
to go to the contortions required for simplification, SROA analysis,
etc.
llvm-svn: 156140
|
| |
|
|
|
|
|
|
| |
recursive descent functions into one table driven parser. Add proper
error recovery and reporting. Add lots of test cases with semantics errors
and verify error messages.
llvm-svn: 156136
|
| |
|
|
|
|
| |
a struct.
llvm-svn: 156135
|
| |
|
|
|
|
|
| |
(Since we don't have a generic pointer escape callback, modify
ExprEngineCallAndReturn as well as the malloc checker.)
llvm-svn: 156134
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
of templates by using the newly introduce FoldingSetVector. This
preserves insertion order for all iteration of specializations.
I've also included a somewhat terrifying testcase that rapidly builds up
a large number of functions. This is enough that any system with ASLR
will have non-deterministic debug information generated for the test
case without the fix here as the debug information is generated in part
by walking these specializations.
llvm-svn: 156133
|
| |
|
|
| |
llvm-svn: 156132
|
| |
|
|
|
|
|
|
|
|
| |
but using a FoldingSet underneath and with a largely compatible
interface to that of FoldingSet. This can be used anywhere a FoldingSet
would be natural, but iteration order is significant. The initial
intended use case is in Clang's template specialization lists to
preserve instantiation order iteration.
llvm-svn: 156131
|
| |
|
|
| |
llvm-svn: 156130
|
| |
|
|
|
|
| |
speedup on <rdar://problem/11004361>
llvm-svn: 156129
|
| |
|
|
|
|
| |
Patch by Meador Inge.
llvm-svn: 156128
|
| |
|
|
|
|
| |
// rdar://11095151
llvm-svn: 156127
|
| |
|
|
|
|
|
| |
(trivially) make DeclContext::lookup()'s const version inlinable. Good
for 0.3% on <rdar://problem/11004361>.
llvm-svn: 156126
|
| |
|
|
|
|
| |
synthesis translation. // rdar://11374235 - wip.
llvm-svn: 156125
|
| |
|
|
| |
llvm-svn: 156124
|
| |
|
|
| |
llvm-svn: 156123
|
| |
|
|
|
|
| |
TargetRegisterClass now gives access to the necessary tables.
llvm-svn: 156122
|
| |
|
|
|
|
|
|
| |
This is a pointer into one of the tables used by
getMatchingSuperRegClass(). It makes it possible to use a shared
implementation of that function.
llvm-svn: 156121
|
| |
|
|
|
|
|
|
|
| |
The RC->getSubClassMask() pointer now points to a sequence of register
class bit masks. The first bit mask is the normal sub-class mask. The
following masks are super-reg class masks used by
getMatchingSuperRegClass().
llvm-svn: 156120
|
| |
|
|
|
|
|
|
|
| |
for the assembler and disassembler. Which were not being set/read correctly
for offsets greater than 22 bits in some cases.
Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!
llvm-svn: 156118
|
| |
|
|
|
|
|
|
|
| |
and use
array_lengthof. Also, append the new filename with correct preprocessed suffix.
Last part of rdar://11285725
llvm-svn: 156117
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
us of its architecture, use that to set the Target's arch if it
doesn't already have one set.
In Process::CompleteAttach(), if the Target has a valid arch make
sure that the Platform we pick up is compatible with that arch; if
not, find a Platform that is compatible. Don't let the the default
platform override the Target's arch.
<rdar://problem/11185420>
llvm-svn: 156116
|
| |
|
|
|
|
|
|
| |
session:
AttributeError: 'module' object has no attribute 'debugger'
llvm-svn: 156115
|
| |
|
|
|
|
|
|
|
|
|
| |
extraction into a public interface. Also clean it up and apply it more
consistently such that we check for landing pads *anywhere* in the
extracted code, not just in single-block extraction.
This will be used to guide decisions in passes that are planning to
eventually perform a round of code extraction.
llvm-svn: 156114
|
| |
|
|
|
|
|
| |
dropped its prior behavior of always defining __cplusplus to 1 in GNU mode in
version 4.7.
llvm-svn: 156113
|
| |
|
|
|
|
|
|
| |
being done for malloc)
fix a few typos found by Chad in my previous commit
llvm-svn: 156110
|
| |
|
|
|
|
| |
This patch creates and optimizes packets as per Hexagon ISA rules.
llvm-svn: 156109
|
| |
|
|
| |
llvm-svn: 156108
|
| |
|
|
|
|
|
|
|
|
|
| |
validate that we didn't override the contents of any of such files.
If this is detected, emit a diagnostic error and recover gracefully
by using the contents of the original file that the PCH was built from.
Part of rdar://11305263
llvm-svn: 156107
|
| |
|
|
|
|
| |
of places. // rdar://11375908
llvm-svn: 156106
|
| |
|
|
| |
llvm-svn: 156104
|
| |
|
|
|
|
|
|
|
| |
performing the search for overridden methods. We very rarely see the
same container twice, and in those rare cases we still have the
fallback of the second SmallPtrSet to eliminate duplicates. Good for
~1.5% -fsyntax-only speedup on the code in <rdar://problem/11004361>.
llvm-svn: 156103
|
| |
|
|
| |
llvm-svn: 156102
|