| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a peek function to let the Lexer look at a character arbitrarily
far ahead in the stream without consuming anything. We need this to
disambiguate numbers and operands of a paste operation. For example:
def foo#8i
Without lookahead the lexer will treat '8' as a number rather than as
part of a string to be pasted to form an identifier.
llvm-svn: 142512
|
| |
|
|
|
|
|
| |
When resolving Record values, be sure to update the Record name as it
may contain references to the value.
llvm-svn: 142511
|
| |
|
|
|
|
|
|
|
|
|
| |
Add Record names to be changed even on Records that aren't yet
registered. We need to be able to do this for paste functionality
because we do not want to register def names before they are unique
and that can only happen once all paste operations are done. This
change lets us update Record names formed by paste operations and
register the result later.
llvm-svn: 142510
|
| |
|
|
|
|
| |
Ask for the Record name as a string explicitly to avoid a possible assert.
llvm-svn: 142506
|
| |
|
|
|
|
|
| |
Ask for the Record name as a string explicitly to avoid a possible
assert.
llvm-svn: 142505
|
| |
|
|
|
|
|
| |
Ask for the record name as a string explicitly to avoid a potential
assert.
llvm-svn: 142504
|
| |
|
|
|
|
| |
Add an init function to be shared among Record constructors.
llvm-svn: 142501
|
| |
|
|
|
|
|
|
| |
Allow template arg names to be Inits. This is further work to
implement paste as it allows template names to participate in paste
operations.
llvm-svn: 142500
|
| |
|
|
|
|
|
| |
Convert SetValue to take the value name as an Init. This allows us to
set values for variables whose names are not yet fully resolved.
llvm-svn: 142499
|
| |
|
|
|
|
|
|
| |
Add a couple of utility functions to take a variable name and qualify
it with the namespace of the enclosing class and/or multiclass. This
is inpreparation for making template arg names first-class Inits.
llvm-svn: 142498
|
| |
|
|
|
|
|
|
| |
Make the VarInit name an Init itself. We need this to implement paste
functionality so we can reference variables whose names are not yet
completely resolved.
llvm-svn: 142497
|
| |
|
|
|
|
|
|
| |
Add accessors to get Record values by Init name. This lets us look up
Record values whose names are not yet fully resolved. More work
toward paste.
llvm-svn: 142496
|
| |
|
|
|
|
|
|
|
| |
and switches, with arbitrary numbers of successors. Still optimized for
the common case of 2 successors for a conditional branch.
Add a test case for switch metadata showing up in the BlockFrequencyInfo pass.
llvm-svn: 142493
|
| |
|
|
|
|
|
|
|
|
|
| |
encoding of probabilities. In the absense of metadata, it continues to
fall back on static heuristics.
This allows __builtin_expect, after lowering through llvm.expect
a branch instruction's metadata, to actually enter the branch
probability model. This is one component of resolving PR2577.
llvm-svn: 142492
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
layer already had support for printing the results of this analysis, but
the wiring was missing.
Now that printing the analysis works, actually bring some of this
analysis, and the BranchProbabilityInfo analysis that it wraps, under
test! I'm planning on fixing some bugs and doing other work here, so
having a nice place to add regression tests and a way to observe the
results is really useful.
llvm-svn: 142491
|
| |
|
|
| |
llvm-svn: 142488
|
| |
|
|
|
|
| |
use a constant pool.
llvm-svn: 142485
|
| |
|
|
| |
llvm-svn: 142484
|
| |
|
|
| |
llvm-svn: 142480
|
| |
|
|
| |
llvm-svn: 142464
|
| |
|
|
| |
llvm-svn: 142460
|
| |
|
|
|
|
| |
used with the CMP instruction.
llvm-svn: 142458
|
| |
|
|
|
|
| |
This reverts commit 494f7ac3e8d2ab3d94e52317abf9c42a949fe1f3.
llvm-svn: 142455
|
| |
|
|
| |
llvm-svn: 142441
|
| |
|
|
|
|
|
| |
register and then compare against that" method when it's too large. We have to
move the value into the register in the "movw, movt" pair of instructions.
llvm-svn: 142440
|
| |
|
|
|
|
| |
I'll remove/rename the option in a few days.
llvm-svn: 142439
|
| |
|
|
|
|
|
| |
register and then compare against that" method when it's too large. We have to
move the value into the register in the "movw, movt" pair of instructions.
llvm-svn: 142437
|
| |
|
|
| |
llvm-svn: 142436
|
| |
|
|
| |
llvm-svn: 142435
|
| |
|
|
|
|
| |
Index starts with zero.
llvm-svn: 142434
|
| |
|
|
|
|
| |
it fails to emit a store. This fixes <rdar://problem/10215997>.
llvm-svn: 142432
|
| |
|
|
|
|
|
| |
instruction. Move the value into a register and then use that for the CMP.
<rdar://problem/10305266>
llvm-svn: 142431
|
| |
|
|
|
|
|
| |
and use that in the CMP.
<rdar://problem/10305266>
llvm-svn: 142429
|
| |
|
|
| |
llvm-svn: 142416
|
| |
|
|
| |
llvm-svn: 142413
|
| |
|
|
| |
llvm-svn: 142412
|
| |
|
|
| |
llvm-svn: 142410
|
| |
|
|
| |
llvm-svn: 142408
|
| |
|
|
|
|
| |
incorrect for bigendian systems.
llvm-svn: 142403
|
| |
|
|
|
|
|
|
| |
Clean up the patterns, fix comments, and avoid confusing both tools
and coders. Note that the special adds/subs SelectionDAG nodes no
longer have the dummy cc_out operand.
llvm-svn: 142397
|
| |
|
|
| |
llvm-svn: 142395
|
| |
|
|
| |
llvm-svn: 142394
|
| |
|
|
|
|
|
|
|
|
| |
predecessor to remove the jump to it as well. Delay clearing the 'landing pad'
flag until after the jumps have been removed. (There is an implicit assumption
in several modules that an MBB which jumps to a landing pad has only two
successors.)
<rdar://problem/10304224>
llvm-svn: 142390
|
| |
|
|
| |
llvm-svn: 142389
|
| |
|
|
| |
llvm-svn: 142386
|
| |
|
|
| |
llvm-svn: 142381
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Fix binary codes and rename operands in .td files so that automatically
generated function MipsCodeEmitter::getBinaryCodeForInstr gives correct
encoding for instructions.
-Define new class FMem for instructions that access memory.
-Define new class FFRGPR for instructions that move data between GPR and
FPU general and control registers.
-Define custom encoder methods for memory operands, and also for size
operands of ext and ins instructions.
-Only static relocation model is currently implemented.
Patch by Sasa Stankovic
llvm-svn: 142378
|
| |
|
|
|
|
| |
<rdar://problem/10298332>
llvm-svn: 142371
|
| |
|
|
|
|
|
|
|
| |
svn r139159 caused SelectionDAG::getConstant() to promote BUILD_VECTOR operands
with illegal types, even before type legalization. For this testcase, that led
to one BUILD_VECTOR with i16 operands and another with promoted i32 operands,
which triggered the assertion.
llvm-svn: 142370
|
| |
|
|
| |
llvm-svn: 142365
|