- Mar 30, 2013
-
-
Akira Hatanaka authored
callee-saved scan. The code makes use of register's scavenger's capability to spill multiple registers. llvm-svn: 178391
-
- Mar 23, 2013
-
-
Hal Finkel authored
This patch lets the register scavenger make use of multiple spill slots in order to guarantee that it will be able to provide multiple registers simultaneously. To support this, the RS's API has changed slightly: setScavengingFrameIndex / getScavengingFrameIndex have been replaced by addScavengingFrameIndex / isScavengingFrameIndex / getScavengingFrameIndices. In forthcoming commits, the PowerPC backend will use this capability in order to implement the spilling of condition registers, and some special-purpose registers, without relying on r0 being reserved. In some cases, spilling these registers requires two GPRs: one for addressing and one to hold the value being transferred. llvm-svn: 177774
-
- Feb 21, 2013
-
-
Eli Bendersky authored
to TargetFrameLowering, where it belongs. Incidentally, this allows us to delete some duplicated (and slightly different!) code in TRI. There are potentially other layering problems that can be cleaned up as a result, or in a similar manner. The refactoring was OK'd by Anton Korobeynikov on llvmdev. Note: this touches the target interfaces, so out-of-tree targets may be affected. llvm-svn: 175788
-
- Jan 30, 2013
-
-
Akira Hatanaka authored
Patch by Sasa Stankovic. llvm-svn: 173862
-
- Jan 02, 2013
-
-
Chandler Carruth authored
into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
-
- Dec 03, 2012
-
-
Chandler Carruth authored
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
-
- Nov 03, 2012
-
-
Akira Hatanaka authored
register is needed. llvm-svn: 167341
-
- Oct 08, 2012
-
-
Micah Villmow authored
llvm-svn: 165402
-
- Aug 02, 2012
-
-
Akira Hatanaka authored
of MipsTargetMachine.cpp. llvm-svn: 161191
-
- Aug 01, 2012
-
-
Akira Hatanaka authored
instructions that decrement and increment the stack pointer before and after a call when the function does not have a reserved call frame. llvm-svn: 161093
-
Akira Hatanaka authored
MipsSEFrameLowering. Implement MipsSEFrameLowering::hasReservedCallFrame. Call frames will not be reserved if there is a call with a large call frame or there are variable sized objects on the stack. llvm-svn: 161090
-
- Jul 31, 2012
-
-
Akira Hatanaka authored
computing it in MipsFrameLowering::emitPrologue. llvm-svn: 161078
-
Akira Hatanaka authored
arguments to the stack in MipsISelLowering::LowerCall, use stack pointer and integer offset operands rather than frame object operands. llvm-svn: 161068
-
- Jul 25, 2012
-
-
Akira Hatanaka authored
The long branch pass (fixed in r160601) no longer uses the global base register to compute addresses of branch destinations, so it is not necessary to reserve a slot on the stack. llvm-svn: 160703
-
- Jul 24, 2012
-
-
Akira Hatanaka authored
Hello world will compile and execute with this patch. Patch by Reed Kotler. llvm-svn: 160651
-
- Jul 21, 2012
-
-
Akira Hatanaka authored
llvm-svn: 160598
-
Akira Hatanaka authored
Test case will be added later when long branch patch is checked in. llvm-svn: 160597
-
- Jul 11, 2012
-
-
Akira Hatanaka authored
Patch by Sasa Stankovic. llvm-svn: 160031
-
- Jul 10, 2012
-
-
Akira Hatanaka authored
llvm-svn: 159971
-
- Jun 27, 2012
-
-
Akira Hatanaka authored
llvm-svn: 159240
-
- Jun 21, 2012
-
-
Akira Hatanaka authored
2. re-enable null.ll test 3. fix some minor style violations Patch by Reed Kotler. llvm-svn: 158935
-
- Jun 14, 2012
-
-
Akira Hatanaka authored
llvm-svn: 158471
-
Akira Hatanaka authored
to load an immediate that does not fit into 16-bit. Also, take into consideration the global base register slot on the stack when computing the stack size. llvm-svn: 158430
-
- May 30, 2012
-
-
Jakob Stoklund Olesen authored
It is better to address sub-registers directly by name instead of relying on their position in the sub-register list. llvm-svn: 157703
-
- May 12, 2012
-
-
Akira Hatanaka authored
- Stop emitting instructions needed to initialize the global pointer register. - Stop emitting .cprestore directive. - Do not take into account the $gp save slot when computing stack size. llvm-svn: 156691
-
- Apr 20, 2012
-
-
Craig Topper authored
Convert more uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent. llvm-svn: 155188
-
- Mar 28, 2012
-
-
Akira Hatanaka authored
them as machine instructions. Directives ".set noat" and ".set at" are now emitted only at the beginning and end of a function except in the case where they are emitted to enclose .cpload with an immediate operand that doesn't fit in 16-bit field or unaligned load/stores. Also, make the following changes: - Remove function isUnalignedLoadStore and use a switch-case statement to determine whether an instruction is an unaligned load or store. - Define helper function CreateMCInst which generates an instance of an MCInst from an opcode and a list of operands. llvm-svn: 153552
-
- Mar 17, 2012
-
-
Craig Topper authored
Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations. llvm-svn: 152997
-
- Mar 05, 2012
-
-
Craig Topper authored
llvm-svn: 152016
-
- Feb 28, 2012
-
-
Jia Liu authored
llvm-svn: 151625
-
- Feb 24, 2012
-
-
Akira Hatanaka authored
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
-
- Feb 17, 2012
-
-
Jia Liu authored
llvm-svn: 150805
-
- Jan 25, 2012
-
-
Akira Hatanaka authored
llvm-svn: 148918
-
Akira Hatanaka authored
- Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently large to handle 64-bit pointers. - Emit instructions to set register $28 in a function prologue after instructions which store callee-saved registers have been emitted. llvm-svn: 148917
-
- Dec 02, 2011
-
-
Nick Lewycky authored
change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. llvm-svn: 145714
-
- Nov 15, 2011
-
-
Akira Hatanaka authored
registers and instructions when ABI is N64. llvm-svn: 144666
-
Akira Hatanaka authored
register. llvm-svn: 144665
-
- Nov 14, 2011
-
-
Akira Hatanaka authored
argument registers on the callee's stack frame, along with functions that set and get it. It is not necessary to add the size of this area when computing stack size in emitPrologue, since it has already been accounted for in PEI::calculateFrameObjectOffsets. llvm-svn: 144549
-
- Nov 11, 2011
-
-
Bruno Cardoso Lopes authored
"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
-
Akira Hatanaka authored
llvm-svn: 144367
-