| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of MipsTargetMachine.cpp.
llvm-svn: 161191
|
| |
|
|
|
|
| |
MipsSERegisterInfo.
llvm-svn: 161092
|
| |
|
|
|
|
| |
and MipsSEInstrInfo (for mips32/64).
llvm-svn: 161081
|
| |
|
|
|
|
|
|
| |
Hello world will compile and execute with this patch.
Patch by Reed Kotler.
llvm-svn: 160651
|
| |
|
|
| |
llvm-svn: 160598
|
| |
|
|
|
|
| |
Test case will be added later when long branch patch is checked in.
llvm-svn: 160597
|
| |
|
|
| |
llvm-svn: 159971
|
| |
|
|
|
|
|
| |
compute the size of basic blocks in a function. Also, define a function which
emits a series of instructions to load an immediate.
llvm-svn: 158429
|
| |
|
|
|
|
| |
Delete MipsExpandPseudo.
llvm-svn: 157495
|
| |
|
|
|
|
| |
some superfluous forward declarations.
llvm-svn: 152997
|
| |
|
|
| |
llvm-svn: 151625
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reserving a physical register ($gp or $28) for that purpose.
This will completely eliminate loads that restore the value of $gp after every
function call, if the register allocator assigns a callee-saved register, or
eliminate unnecessary loads if it assigns a temporary register.
example:
.cpload $25 // set $gp.
...
.cprestore 16 // store $gp to stack slot 16($sp).
...
jalr $25 // function call. clobbers $gp.
lw $gp, 16($sp) // not emitted if callee-saved reg is chosen.
...
lw $2, 4($gp)
...
jalr $25 // function call.
lw $gp, 16($sp) // not emitted if $gp is not live after this instruction.
...
llvm-svn: 151402
|
| |
|
|
|
|
| |
-relocation-model=static.
llvm-svn: 146432
|
| |
|
|
|
|
|
|
|
|
| |
"With this patch we can now generate runnable Mips code through LLVM
direct object emission. We have run numerous simple programs, both C
and C++ and with -O0 and -O3 from the output. The code is not production
ready, but quite useful for experimentation." Patch and message by
Jack Carter
llvm-svn: 144414
|
| |
|
|
| |
llvm-svn: 141613
|
| |
|
|
| |
llvm-svn: 140295
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add TSFlags for the instruction formats. The idea here is to use
as much encoding as possible from getBinaryCodeForInstr, and having
TSFLags formats for that would make it easier to encode most part
of the instructions (since Mips encodings are pretty straightforward)
- Improve the mips mechanism for compilation callback
- Add Mips specific code for invalidating the instruction cache
- Next patch will address wrong tablegen encoding
Commit msg added by my own but the patch is from Sasa Stankovic.
llvm-svn: 139688
|
| |
|
|
| |
llvm-svn: 134661
|
| |
|
|
| |
llvm-svn: 134244
|
| |
|
|
| |
llvm-svn: 134224
|
| |
|
|
|
|
|
|
| |
Dynamic, Initial Exec and Local Exec TLS models.
Patch by Sasa Stankovic
llvm-svn: 132322
|
| |
|
|
|
|
| |
in functionality.
llvm-svn: 129612
|
| |
|
|
|
|
| |
change in functionality.
llvm-svn: 129606
|
| |
|
|
| |
llvm-svn: 128741
|
| |
|
|
| |
llvm-svn: 128718
|
| |
|
|
|
|
| |
handling of FP comparisons.
llvm-svn: 128650
|
| |
|
|
|
|
| |
Hatanaka, Akira
llvm-svn: 127003
|
| |
|
|
| |
llvm-svn: 108567
|
| |
|
|
|
|
|
|
| |
The only folding these load/store architectures can do is converting COPY into a
load or store, and the target independent part of foldMemoryOperand already
knows how to do that.
llvm-svn: 108099
|
| |
|
|
| |
llvm-svn: 108066
|
| |
|
|
|
|
|
|
|
|
|
|
| |
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.
This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.
llvm-svn: 106243
|
| |
|
|
|
|
| |
doesn't have to guess.
llvm-svn: 103194
|
| |
|
|
| |
llvm-svn: 103193
|
| |
|
|
|
|
|
| |
MachineBasicBlock::canFallThrough(), which is target-independent and more
thorough.
llvm-svn: 90634
|
| |
|
|
|
|
| |
they make it less convenient to add new entries.
llvm-svn: 83308
|
| |
|
|
|
|
|
|
| |
Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).
llvm-svn: 80691
|
| |
|
|
| |
llvm-svn: 80280
|
| |
|
|
|
|
|
|
| |
Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).
llvm-svn: 80278
|
| |
|
|
| |
llvm-svn: 76960
|
| |
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
| |
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
| |
|
|
|
|
|
|
|
|
| |
carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This
eliminates the need for them to search through the
MachineRegisterInfo livein list in order to identify these
virtual registers. EmitLiveInCopies is now the only user of the
virtual register portion of MachineRegisterInfo's livein data.
llvm-svn: 72802
|
| |
|
|
|
|
|
|
| |
suprise to some callers, e.g. register coalescer. For now, add an parameter
that tells AnalyzeBranch whether it's safe to modify the mbb. A better
solution is out there, but I don't have time to deal with it right now.
llvm-svn: 64124
|
| |
|
|
|
|
| |
sub-register indices as well.
llvm-svn: 62600
|
| |
|
|
|
|
|
| |
parts, and add target-independent code to add/preserve
MachineMemOperands.
llvm-svn: 60488
|
| |
|
|
| |
llvm-svn: 59542
|
| |
|
|
| |
llvm-svn: 57622
|
| |
|
|
|
|
|
|
|
| |
requested
was inserted or not. This allows bitcast in fast isel to properly handle the case
where an appropriate reg-to-reg copy is not available.
llvm-svn: 55375
|
| |
|
|
|
|
| |
had to be propoagated down into all the targets and up into all clients of this API.
llvm-svn: 54802
|
| |
|
|
|
|
|
| |
Fixed COMM asm directive usage.
ConstantPool using custom FourByteConstantSection.
llvm-svn: 54139
|