| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
target cannot be determined accurately. This is the case for NaCl where the
sandboxing instructions are added in MC layer, after the MipsLongBranch pass.
It is also the case when the code has inline assembly. Instead of calculating
offset in the MipsLongBranch pass, use %hi(sym1 - sym2) and %lo(sym1 - sym2)
expressions that are resolved during the fixup.
This patch also deletes microMIPS test file test/CodeGen/Mips/micromips-long-branch.ll
and implements microMIPS CHECKs in a much simpler way in a file
test/CodeGen/Mips/longbranch.ll, together with MIPS32 and MIPS64.
llvm-svn: 207656
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition
llvm-svn: 207506
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file. The memory leaks in this version have been fixed. Thanks
Alexey for pointing them out.
Differential Revision: http://llvm-reviews.chandlerc.com/D2068
Reviewed by Andy
llvm-svn: 195064
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This change is incorrect. If you delete virtual destructor of both a base class
and a subclass, then the following code:
Base *foo = new Child();
delete foo;
will not cause the destructor for members of Child class. As a result, I observe
plently of memory leaks. Notable examples I investigated are:
ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl.
llvm-svn: 194997
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file.
Differential Revision: http://llvm-reviews.chandlerc.com/D2068
Reviewed by Andy
llvm-svn: 194865
|
| |
|
|
|
|
|
|
|
|
| |
MachineInstrs
Frame index handling is now target-agnostic, so delete the target hooks
for creation & asm printing of target-specific addressing in DBG_VALUEs
and any related functions.
llvm-svn: 184067
|
| |
|
|
|
|
| |
operands as the prototype instruction but with a different opcode.
llvm-svn: 181714
|
| |
|
|
| |
llvm-svn: 181713
|
| |
|
|
|
|
| |
No functionality changes.
llvm-svn: 178327
|
| |
|
|
|
|
|
|
| |
This function will be used later when the capability to search delay slot
filling instructions in successor blocks is added. No intended functionality
changes.
llvm-svn: 176325
|
| |
|
|
|
|
|
|
|
|
| |
the temporary register that was used to load the immediate. Currently, it always
returns register $at, but this will change if, in the future, we decide to use
another register.
No changes in functionality.
llvm-svn: 162417
|
| |
|
|
|
|
| |
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
|