| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
implementations to use EmitRawText instead of writing
directly to "O".
llvm-svn: 100318
|
| |
|
|
|
|
| |
raw_ostream to print to.
llvm-svn: 100313
|
| |
|
|
|
|
| |
member of AsmPrinter. Instead, pass it in explicitly.
llvm-svn: 100306
|
| |
|
|
|
|
|
| |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100304
|
| |
|
|
|
|
| |
of printOffset to pass in a stream to print to.
llvm-svn: 100296
|
| |
|
|
| |
llvm-svn: 100214
|
| |
|
|
| |
llvm-svn: 100208
|
| |
|
|
| |
llvm-svn: 100199
|
| |
|
|
|
|
|
| |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100191
|
| |
|
|
|
|
|
| |
folder to be tolerant of debug info following the
branch(es) at the end of a block.
llvm-svn: 100168
|
| |
|
|
| |
llvm-svn: 100132
|
| |
|
|
|
|
|
|
| |
zero.
- Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type.
llvm-svn: 100118
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
ops more effectively.
rdar://7774704
llvm-svn: 100090
|
| |
|
|
| |
llvm-svn: 100031
|
| |
|
|
| |
llvm-svn: 99948
|
| |
|
|
|
|
|
|
|
| |
memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
|
| |
|
|
|
|
|
|
|
| |
create symbols. It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902
|
| |
|
|
|
|
|
| |
makes calls a little bit more consistent and allows easy removal of the
specializations in the future. Convert all callers to the templated functions.
llvm-svn: 99838
|
| |
|
|
|
|
|
| |
patterns that would never match because of bitcast, and eliminating use
of vnot_conv.
llvm-svn: 99753
|
| |
|
|
| |
llvm-svn: 99097
|
| |
|
|
|
|
| |
need them.
llvm-svn: 98937
|
| |
|
|
|
|
| |
section, remove the target-specific code that performs this.
llvm-svn: 98580
|
| |
|
|
| |
llvm-svn: 98523
|
| |
|
|
|
|
| |
to get unique assembler temporary labels.
llvm-svn: 98489
|
| |
|
|
|
|
| |
contain an MCSymbol instead of a label index.
llvm-svn: 98482
|
| |
|
|
|
|
| |
with an MCSymbol instead of an immediate.
llvm-svn: 98481
|
| |
|
|
|
|
|
|
| |
an MCSymbol. Make the EH_LABEL MachineInstr hold its label
with an MCSymbol instead of ID. Fix a bug in MMI.cpp which
would return labels named "Label4" instead of "label4".
llvm-svn: 98463
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of label ID's. This cleans up and regularizes a bunch
of code and makes way for future progress.
Unfortunately, this pointed out to me that JITDwarfEmitter.cpp
is largely copy and paste from DwarfException/MachineModuleInfo
and other places. This is very sad and disturbing. :(
One major change here is that TidyLandingPads moved from being
called in DwarfException::BeginFunction to being called in
DwarfException::EndFunction. There should not be any
functionality change from doing this, but I'm not an EH expert.
llvm-svn: 98459
|
| |
|
|
| |
llvm-svn: 98451
|
| |
|
|
|
|
|
|
|
|
|
| |
and passing off ownership to AsmPrinter. Now MachineModuleInfo
creates it and owns it by value. This allows us to use MCSymbols
more consistently throughout the rest of the code generator, and
simplifies a bit of code. This also allows MachineFunction to
keep an MCContext reference handy, and cleans up the TargetRegistry
interfaces for AsmPrinters.
llvm-svn: 98450
|
| |
|
|
| |
llvm-svn: 98394
|
| |
|
|
|
|
| |
remove it.
llvm-svn: 98390
|
| |
|
|
|
|
|
|
|
| |
LSDA into the TEXT section. We need to generate non-lazy pointers to it on
Mach-O. However, the object the NLP points to may be local to the translation
unit. If so, then the NLP needs to have the value of that object specified
instead of "0", which the linker interprets as "external".
llvm-svn: 98325
|
| |
|
|
| |
llvm-svn: 98300
|
| |
|
|
|
|
|
|
| |
indicates that an MCSymbol is external or not. (It's true if it's external.)
This will be used to specify the correct information to add to non-lazy
pointers. That will be explained further when this bit is used.
llvm-svn: 98199
|
| |
|
|
| |
llvm-svn: 98124
|
| |
|
|
|
|
|
|
|
|
| |
is preparatory to having PEI's scavenged frame index value reuse logic
properly distinguish types of frame values (e.g., whether the value is
stack-pointer relative or frame-pointer relative).
No functionality change.
llvm-svn: 98086
|
| |
|
|
|
|
|
|
| |
Make it so. (This patch is in LowerCall_Darwin, which seems
to be used by SVR4 code as well; since that doesn't belong here,
I haven't worried about this case.)
llvm-svn: 98077
|
| |
|
|
|
|
| |
for, due to a bug.
llvm-svn: 97953
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader.
Sink some other stuff out of DAGISelHeader into SDISel.
Eliminate the various 'Indent' stuff from various targets, which dates
to when isel was recursive.
17 files changed, 114 insertions(+), 430 deletions(-)
llvm-svn: 97555
|
| |
|
|
| |
llvm-svn: 97536
|
| |
|
|
|
|
| |
respectively.
llvm-svn: 97531
|
| |
|
|
|
|
|
|
|
| |
but codegen'd differently. This really wanted to use some
sort of subreg to get the low 4 bytes of the G8RC register
or something. However, it's invalid and nothing is testing
it, so I'm just zapping the bogosity.
llvm-svn: 97345
|
| |
|
|
|
|
|
|
|
| |
This is possible because F8RC is a subclass of F4RC. We keep FMRSD around so
fextend has a pattern.
Also allow folding of memory operands on FMRSD.
llvm-svn: 97275
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PPCInstrInfo::foldMemoryOperandImpl().
The PowerPC floating point registers can represent both f32 and f64 via the
two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to
allow cross-class coalescing. This coalescing only affects whether registers
are spilled as f32 or f64.
Spill slots must be accessed with load/store instructions corresponding to the
class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking
at the instruction opcode which is wrong.
X86 has similar floating point register classes, but doesn't try to fold
memory operands, so there is no problem there.
llvm-svn: 97262
|
| |
|
|
|
|
| |
though some look dubious afaict, these are all ok.
llvm-svn: 96899
|
| |
|
|
|
|
| |
the same thing and is more efficient for the matcher.
llvm-svn: 96712
|
| |
|
|
| |
llvm-svn: 96399
|
| |
|
|
|
|
|
| |
llvm-gcc but has been replaced with pad argument which don't need any
special backend support.
llvm-svn: 96312
|
| |
|
|
| |
llvm-svn: 96288
|