| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 142624
|
| |
|
|
|
|
| |
protected by ifdef either.
llvm-svn: 142623
|
| |
|
|
| |
llvm-svn: 142622
|
| |
|
|
|
|
| |
top-down scheduling and top-down scheduling is going away.
llvm-svn: 142621
|
| |
|
|
|
|
| |
because they don't support physical register dependencies.
llvm-svn: 142620
|
| |
|
|
|
|
| |
versions. This fixes some roundtripping failures.
llvm-svn: 142618
|
| |
|
|
| |
llvm-svn: 142615
|
| |
|
|
| |
llvm-svn: 142608
|
| |
|
|
|
|
|
|
|
|
| |
the last compiler built for the previous flavour is used for the next,
for example the Debug clang compiler was being used for the initial build
of the Release LLVM. Flavors should be independent of each other. This
especially matters if the compiler built for the previous flavour doesn't
actually work!
llvm-svn: 142607
|
| |
|
|
|
|
|
|
| |
AsmParser. This patch adds validation for target data layout strings upon
construction of TargetData objects. An attempt to construct a TargetData object
from a malformed string will trigger an assertion.
llvm-svn: 142605
|
| |
|
|
|
|
|
| |
causing one of the unit tests to infinitely loop, which resulted in the
buildbots stalling.
llvm-svn: 142604
|
| |
|
|
| |
llvm-svn: 142593
|
| |
|
|
| |
llvm-svn: 142592
|
| |
|
|
| |
llvm-svn: 142591
|
| |
|
|
| |
llvm-svn: 142583
|
| |
|
|
| |
llvm-svn: 142582
|
| |
|
|
| |
llvm-svn: 142581
|
| |
|
|
| |
llvm-svn: 142579
|
| |
|
|
|
|
|
| |
In fact this commit is not intended to change anything unless you
use one of the new command line flags.
llvm-svn: 142577
|
| |
|
|
|
|
| |
compiler warnings.
llvm-svn: 142574
|
| |
|
|
| |
llvm-svn: 142573
|
| |
|
|
|
|
| |
definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180.
llvm-svn: 142572
|
| |
|
|
| |
llvm-svn: 142570
|
| |
|
|
| |
llvm-svn: 142569
|
| |
|
|
| |
llvm-svn: 142567
|
| |
|
|
| |
llvm-svn: 142559
|
| |
|
|
|
|
| |
correctly in GetStringLength, fixing PR11181!
llvm-svn: 142558
|
| |
|
|
| |
llvm-svn: 142557
|
| |
|
|
|
|
| |
Patch by Pranav Bhandarkar!
llvm-svn: 142556
|
| |
|
|
|
|
| |
rdar://10291355
llvm-svn: 142550
|
| |
|
|
|
|
|
|
|
| |
When checking the availability of instructions using the TLI, a 'promoted'
instruction IS available. It means that the value is bitcasted to another type
for which there is an operation. The correct check for the availablity of an
instruction is to check if it should be expanded.
llvm-svn: 142542
|
| |
|
|
| |
llvm-svn: 142537
|
| |
|
|
|
|
| |
Jean-Danial Dupas!
llvm-svn: 142535
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
addresses when optimizing for size.
On spec/gcc, this caused a codesize improvement of ~1.9% for ARM mode and ~4.9% for Thumb(2) mode. This is
codesize including literal pools.
The pools themselves doubled in size for ARM mode and quintupled for Thumb mode, leaving suggestion that there
is still perhaps redundancy in LLVM's use of constant pools that could be decreased by sharing entries.
Fixes PR11087.
llvm-svn: 142530
|
| |
|
|
|
|
| |
Document paste as a shorthand for !strconcat.
llvm-svn: 142528
|
| |
|
|
|
|
|
| |
Document NAME as a special member of def records that should
not be defined anywhere else.
llvm-svn: 142527
|
| |
|
|
|
|
| |
This tests TableGen's paste functionality.
llvm-svn: 142526
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a paste operator '#' to take two identifier-like strings and joint
them. Internally paste gets represented as a !strconcat() with any
necessary casts to string added.
This will be used to implement basic for loop functionality as in:
for i = [0, 1, 2, 3, 4, 5, 6, 7] {
def R#i : Register<...>
}
llvm-svn: 142525
|
| |
|
|
|
|
|
| |
During multiclass def instantiation, replace NAME in any expressions
with the value of the def or defm ID.
llvm-svn: 142524
|
| |
|
|
|
|
|
| |
Parse and process a defm prefix as an Init expression. This allows
paste operations to create defm prefixes.
llvm-svn: 142523
|
| |
|
|
|
|
|
| |
Allow def and defm IDs to be general values. We need this for paste
functionality.
llvm-svn: 142522
|
| |
|
|
|
|
|
|
| |
Stop parsing a value if we are in name parsing mode and we see a left
brace. A left brace indicates the start of an object body when we are
parsing a name.
llvm-svn: 142521
|
| |
|
|
|
|
|
| |
Augment the value parser to respect the parse mode and not error if an
ID doesn't map to an object and we are in name parsing mode.
llvm-svn: 142520
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a mode control to value and ID parsers. The two modes are:
- Parse a value. Expect the parsed ID to map to an existing object.
- Parse a name. Expect the parsed ID to not map to any existing object.
The first is used when parsing an identifier to be looked up, for
example a record field or template argument. The second is used for
parsing declarations. Paste functionality implies that declarations
can contain arbitrary expressions so we need to be able to call into
the general value parser to parse declarations with paste operators.
So we need a way to parse a value-like thing without expecting that
the result will map to some existing object. This parse mode provides
that.
llvm-svn: 142519
|
| |
|
|
|
|
|
|
| |
Add a Value named "NAME" to each Record. This will be set to the def or defm
name when instantiating multiclasses. This will replace the #NAME# processing
hack once paste functionality is in place.
llvm-svn: 142518
|
| |
|
|
|
|
| |
Get the Record name as a string explicitly to avoid asserts.
llvm-svn: 142517
|
| |
|
|
|
|
| |
Get the Record name as a string explicitly to avoid asserts.
llvm-svn: 142516
|
| |
|
|
|
|
| |
Get the Record name as a string explicitly to avoid asserts.
llvm-svn: 142515
|
| |
|
|
|
|
| |
Get the Record name by string explicitly to avoid potential asserts.
llvm-svn: 142514
|
| |
|
|
|
|
|
|
| |
Use lookahead to determine whether a number is really a number or is
part of something forming an identifier. This won't come into play
until the paste operator is recognized as a unique token.
llvm-svn: 142513
|