| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Fix emitArrayBound() calling OutStreamer.Emit*() multiple times when trying to print a single line
llvm-svn: 187562
|
|
|
|
| |
llvm-svn: 187348
|
|
|
|
| |
llvm-svn: 187195
|
|
|
|
| |
llvm-svn: 187193
|
|
|
|
|
|
| |
Patch by Robert Lytton.
llvm-svn: 186500
|
|
|
|
|
|
|
| |
Previously an asm operand with no operand modifier would give the error
"invalid operand in inline asm".
llvm-svn: 186407
|
|
|
|
|
|
| |
size.
llvm-svn: 186274
|
|
|
|
| |
llvm-svn: 185519
|
|
|
|
|
|
| |
Patch by Robert Lytton.
llvm-svn: 185518
|
|
|
|
|
|
|
|
|
|
|
| |
r182680 replaced CountLeadingZeros_32 with a template function
countLeadingZeros that relies on using the correct argument type to give
the right result. The type passed in the XCore backend after this
revision was incorrect in a couple of places.
Patch by Robert Lytton.
llvm-svn: 185430
|
|
|
|
| |
llvm-svn: 184642
|
|
|
|
|
|
| |
caching it. The TLI may change between functions. No functionality change.
llvm-svn: 184360
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
the internals of TargetMachine could change.
No functionality change intended.
llvm-svn: 183572
|
|
|
|
|
|
|
| |
Caching it as a pointer allows us to reset it if the TargetMachine object
changes.
llvm-svn: 183361
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR16146: gdb.base__call-ar-st.exp fails after
pre-RA-sched=source fixes.
Patch by Xiaoyi Guo!
This also fixes an unsupported dbg.value test case. Codegen was
previously incorrect but the test was passing by luck.
llvm-svn: 182885
|
|
|
|
|
|
|
| |
Change SelectionDAG::getXXXNode() interfaces as well as call sites of
these functions to pass in SDLoc instead of DebugLoc.
llvm-svn: 182703
|
|
|
|
| |
llvm-svn: 182680
|
|
|
|
|
|
|
|
|
|
| |
There was exactly one caller using this API right, the others were relying on
specific behavior of the default implementation. Since it's too hard to use it
right just remove it and standardize on the default behavior.
Defines away PR16132.
llvm-svn: 182636
|
|
|
|
|
|
| |
-Wunused-but-set-variable. Leftover from r181979.
llvm-svn: 181993
|
|
|
|
|
|
|
|
| |
getExceptionHandlingType is not ExceptionHandling::DwarfCFI on xcore, so
etFrameInstructions is never called. There is no point creating cfi
instructions if they are never used.
llvm-svn: 181979
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was just a less powerful and more confusing version of
MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
dwarf register numbers, calls to getDwarfRegNum are pushed out, which
should allow further simplifications.
I left the MachineModuleInfo::addFrameMove interface unchanged since
this patch was already fairly big.
llvm-svn: 181680
|
|
|
|
|
|
|
| |
To add a frame now there is a dedicated addFrameMove which also takes
care of constructing the move itself.
llvm-svn: 181657
|
|
|
|
| |
llvm-svn: 181618
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we only checked if the LR required saving if the frame size was
non zero. However because the caller reserves 1 word for the callee to use
that doesn't count towards our frame size it is possible for the LR to need
saving and for the frame size to be 0.
We didn't hit when the LR needed saving because of a function calls because
the 1 word of stack we must allocate for our callee means the frame size
is always non zero in this case. However we can hit this case if the LR is
clobbered in inline asm.
llvm-svn: 181520
|
|
|
|
|
|
|
| |
With the change the disassembler now supports the XCore ISA in its
entirety.
llvm-svn: 181155
|
|
|
|
| |
llvm-svn: 181154
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 181153
|
|
|
|
| |
llvm-svn: 181152
|
|
|
|
|
|
|
|
| |
Instead operands are treated as negative immediates
where the sign bit is implicit in the instruction
encoding.
llvm-svn: 181151
|
|
|
|
|
|
| |
operand types.
llvm-svn: 181128
|
|
|
|
| |
llvm-svn: 181127
|
|
|
|
|
|
|
|
| |
This let us to remove some custom code that matched constant offsets
from globals at instruction selection time as a special addressing mode.
No intended functionality change.
llvm-svn: 181126
|
|
|
|
|
|
|
|
|
| |
The code now makes use of ComputeMaskedBits,
SelectionDAG::isBaseWithConstantOffset and TargetLowering::isGAPlusOffset
where appropriate reducing the amount of logic needed in XCoreISelLowering.
No intended functionality change.
llvm-svn: 181125
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thread local storage is not supported by the XMOS linker so we handle
thread local variables by lowering the variable to an array of n elements
(where n is the number of hardware threads per core, currently 8
for all XMOS devices) indexed by the the current thread ID.
Previously this lowering was spread across the XCoreISelLowering and the
XCoreAsmPrinter classes. Moving this to a separate pass should be much
cleaner.
llvm-svn: 181124
|
|
|
|
|
|
|
| |
This allows us to get get rid of a hack in XCoreTargetObjectFile where the
the DataRel* sections were overridden.
llvm-svn: 181116
|
|
|
|
| |
llvm-svn: 179901
|
|
|
|
| |
llvm-svn: 178783
|
|
|
|
|
|
|
|
|
|
| |
At the time when the XCore backend was added there were some issues with
with overlapping register classes but these all seem to be fixed now.
Describing the register classes correctly allow us to get rid of a
codegen only instruction (LDAWSP_lru6_RRegs) and it means we can
disassemble ru6 instructions that use registers above r11.
llvm-svn: 178782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LegalizeDAG.cpp uses the value of the comparison operands when checking
the legality of BR_CC, so DAGCombiner should do the same.
v2:
- Expand more BR_CC value types for NVPTX
v3:
- Expand correct BR_CC value types for Hexagon, Mips, and XCore.
llvm-svn: 176694
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ISD::SHL/SRL/SRA must have either both scalar or both vector operands
but TLI.getShiftAmountTy() so far only return scalar type. As a
result, backend logic assuming that breaks.
- Rename the original TLI.getShiftAmountTy() to
TLI.getScalarShiftAmountTy() and re-define TLI.getShiftAmountTy() to
return target-specificed scalar type or the same vector type as the
1st operand.
- Fix most TICG logic assuming TLI.getShiftAmountTy() a simple scalar
type.
llvm-svn: 176364
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
ivars should be camel-case and start with an upper-case letter. A few in
TargetLowering were starting with a lower-case letter.
No functional change intended.
llvm-svn: 175667
|
|
|
|
|
|
|
| |
These instructions are not targeted by the compiler but it is needed for
the MC layer.
llvm-svn: 175407
|
|
|
|
|
|
|
| |
This instruction is not targeted by the compiler but it is needed for the
MC layer.
llvm-svn: 175406
|
|
|
|
|
|
|
| |
These instructions are not targeted by the compiler but they are
needed for the MC layer.
llvm-svn: 175404
|
|
|
|
|
|
|
| |
These instructions are not targeted by the compiler but they are
needed for the MC layer.
llvm-svn: 175403
|
|
|
|
| |
llvm-svn: 174414
|
|
|
|
|
|
|
| |
Each target implementation was needlessly recomputing the index.
Part of rdar://13076458
llvm-svn: 174083
|