| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
them, then the asmprinter emitter reescape them.
llvm-svn: 66958
|
|
|
|
|
|
|
|
|
|
|
|
| |
them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379
|
|
|
|
|
|
|
|
|
|
| |
a DBG_LABEL or not. We want to fall back to the original way of emitting debug
info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
need to investigate still.
llvm-svn: 65367
|
|
|
|
|
|
|
|
|
| |
function. Emitting another label after the prologue messes up the debugging. We
are doing that because the first DebugLoc object it sees is different from the
previous, which was nothing. Check for this situation, and don't emit one if
it's the first.
llvm-svn: 65180
|
|
|
|
|
|
| |
emitted.
llvm-svn: 65092
|
|
|
|
|
|
| |
locations may change, but the tuples may be the same.
llvm-svn: 65039
|
|
|
|
| |
llvm-svn: 65034
|
|
|
|
|
|
| |
everyone.
llvm-svn: 64978
|
|
|
|
| |
llvm-svn: 64915
|
|
|
|
| |
llvm-svn: 58263
|
|
|
|
|
|
| |
(AsmWriterOperand is used in a std::pair, and VS need to generate the default constructor of this pair).
llvm-svn: 58185
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943
|
|
|
|
|
|
|
| |
string began at a power of 2 in the string index. For example, if "ret" started
at position 16, the ret instruction would be assigned code 16, but the mask would be AsmChars[] + Code & 15, not Code & 31.
llvm-svn: 49433
|
|
|
|
| |
llvm-svn: 48450
|
|
|
|
|
|
| |
independent one: TargetInstrInfo::IMPLICIT_DEF.
llvm-svn: 48380
|
|
|
|
|
|
| |
annoying warnings.
llvm-svn: 47367
|
|
|
|
| |
llvm-svn: 46667
|
|
|
|
|
|
|
|
|
| |
information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
llvm-svn: 46659
|
|
|
|
| |
llvm-svn: 45419
|
|
|
|
| |
llvm-svn: 39993
|
|
|
|
| |
llvm-svn: 33539
|
|
|
|
| |
llvm-svn: 32333
|
|
|
|
|
|
|
|
|
|
| |
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
llvm-svn: 31769
|
|
|
|
| |
llvm-svn: 31464
|
|
|
|
|
|
|
|
|
|
| |
AggregateString += "\0\0";
Doesn't add two nuls to the AggregateString (for obvious reasons), which
broke the asmprinter when the first character of an asm string was not
literal text.
llvm-svn: 30625
|
|
|
|
| |
llvm-svn: 30618
|
|
|
|
|
|
|
| |
has no associated operand. This is useful for portably encoding stuff like
the comment character into an asm string.
llvm-svn: 30617
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108
|
|
|
|
|
|
| |
string. The return value of printInstruction should be true for these.
llvm-svn: 29196
|
|
|
|
|
|
|
|
| |
instructions not handled would have a case value of #0, throwing things off.
This marginally shrinks the X86 asmprinter, but shrinks the sparc asmwriter
by 25 lines.
llvm-svn: 29187
|
|
|
|
|
|
| |
Add an assert that catches the real problem earlier.
llvm-svn: 29185
|
|
|
|
|
|
|
| |
series of identical commands, handle them all with one switch. In the case
of the x86 at&t asm printer, only 3 switches are needed for all instructions.
llvm-svn: 29184
|
|
|
|
|
|
| |
generated file.
llvm-svn: 29183
|
|
|
|
|
|
|
| |
return from the asmprinter to make the generated asmprinter both more
efficient and smaller.
llvm-svn: 29182
|
|
|
|
|
|
| |
tidyness.
llvm-svn: 29181
|
|
|
|
|
|
|
| |
x86 and ppc, this gets us 4 more bits to play with, since the string indices
both only use 12 bits.
llvm-svn: 29180
|
|
|
|
| |
llvm-svn: 29179
|
|
|
|
|
|
|
|
|
| |
based and less switch-statements-with-hundreds-of-cases based. This shrinks
the x86 asmprinters to about 1/3 their previous size.
Other improvements coming.
llvm-svn: 29177
|
|
|
|
| |
llvm-svn: 29155
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and index into it, instead of emitting it like this:
static const char * const OpStrs[] = {
"PHINODE\n", // PHI
0, // INLINEASM
"adc ", // ADC32mi
"adc ", // ADC32mi8
...
The old way required thousands of relocations that slows down link time and
dynamic load times.
This also cuts about 10K off each of the X86 asmprinters, and should shrink
the others as well.
llvm-svn: 29152
|
|
|
|
|
|
| |
one for each instruction.
llvm-svn: 28038
|
|
|
|
|
|
|
|
|
| |
us to avoid creating lots of "Operand" types with different printers, instead
we can fold several together and use modifiers. For example, we can now use:
${target:call} to say that the operand should be printed like a 'call' operand.
llvm-svn: 26024
|
|
|
|
| |
llvm-svn: 26023
|
|
|
|
| |
llvm-svn: 25880
|
|
|
|
| |
llvm-svn: 25677
|
|
|
|
|
|
|
| |
an argument to every operand printing function. Requires some slight
tweaks to x86, the only user.
llvm-svn: 24541
|
|
|
|
| |
llvm-svn: 22523
|
|
|
|
|
|
| |
should be looking at CGI.TheDef->getName().
llvm-svn: 22445
|
|
|
|
|
|
|
|
| |
printed as part of the opcode. This allows something like
cmp${cc}ss in the x86 backed to be printed as cmpltss, cmpless, etc.
depending on what the value of $cc is.
llvm-svn: 22439
|
|
|
|
| |
llvm-svn: 21428
|