mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
[PowerPC] Cleanup unused target-specific SDAG nodes
We had somehow accumulated a few target-specific SDAG nodes dealing with PPC64 TOC access that were referenced only in TableGen patterns. The associated (pseudo-)instructions are used, but are being generated directly. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230518 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
47df9cd61b
commit
a40d4ae478
@ -991,9 +991,6 @@ const char *PPCTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
case PPCISD::TC_RETURN: return "PPCISD::TC_RETURN";
|
||||
case PPCISD::CR6SET: return "PPCISD::CR6SET";
|
||||
case PPCISD::CR6UNSET: return "PPCISD::CR6UNSET";
|
||||
case PPCISD::ADDIS_TOC_HA: return "PPCISD::ADDIS_TOC_HA";
|
||||
case PPCISD::LD_TOC_L: return "PPCISD::LD_TOC_L";
|
||||
case PPCISD::ADDI_TOC_L: return "PPCISD::ADDI_TOC_L";
|
||||
case PPCISD::PPC32_GOT: return "PPCISD::PPC32_GOT";
|
||||
case PPCISD::ADDIS_GOT_TPREL_HA: return "PPCISD::ADDIS_GOT_TPREL_HA";
|
||||
case PPCISD::LD_GOT_TPREL_L: return "PPCISD::LD_GOT_TPREL_L";
|
||||
|
@ -192,7 +192,7 @@ namespace llvm {
|
||||
PPC32_GOT,
|
||||
|
||||
/// GPRC = address of _GLOBAL_OFFSET_TABLE_. Used by general dynamic and
|
||||
/// local dynamic TLS on PPC32.
|
||||
/// local dynamic TLS on PPC32.
|
||||
PPC32_PICGOT,
|
||||
|
||||
/// G8RC = ADDIS_GOT_TPREL_HA %X2, Symbol - Used by the initial-exec
|
||||
@ -325,21 +325,6 @@ namespace llvm {
|
||||
/// destination 64-bit register.
|
||||
LFIWZX,
|
||||
|
||||
/// G8RC = ADDIS_TOC_HA %X2, Symbol - For medium and large code model,
|
||||
/// produces an ADDIS8 instruction that adds the TOC base register to
|
||||
/// sym\@toc\@ha.
|
||||
ADDIS_TOC_HA,
|
||||
|
||||
/// G8RC = LD_TOC_L Symbol, G8RReg - For medium and large code model,
|
||||
/// produces a LD instruction with base register G8RReg and offset
|
||||
/// sym\@toc\@l. Preceded by an ADDIS_TOC_HA to form a full 32-bit offset.
|
||||
LD_TOC_L,
|
||||
|
||||
/// G8RC = ADDI_TOC_L G8RReg, Symbol - For medium code model, produces
|
||||
/// an ADDI8 instruction that adds G8RReg to sym\@toc\@l.
|
||||
/// Preceded by an ADDIS_TOC_HA to form a full 32-bit offset.
|
||||
ADDI_TOC_L,
|
||||
|
||||
/// VSRC, CHAIN = LXVD2X_LE CHAIN, Ptr - Occurs only for little endian.
|
||||
/// Maps directly to an lxvd2x instruction that will be followed by
|
||||
/// an xxswapd.
|
||||
|
@ -863,19 +863,15 @@ def LDUX : XForm_1<31, 53, (outs g8rc:$rD, ptr_rc_nor0:$ea_result),
|
||||
}
|
||||
|
||||
// Support for medium and large code model.
|
||||
let hasSideEffects = 0 in {
|
||||
def ADDIStocHA: Pseudo<(outs g8rc:$rD), (ins g8rc_nox0:$reg, tocentry:$disp),
|
||||
"#ADDIStocHA",
|
||||
[(set i64:$rD,
|
||||
(PPCaddisTocHA i64:$reg, tglobaladdr:$disp))]>,
|
||||
isPPC64;
|
||||
"#ADDIStocHA", []>, isPPC64;
|
||||
let mayLoad = 1 in
|
||||
def LDtocL: Pseudo<(outs g8rc:$rD), (ins tocentry:$disp, g8rc_nox0:$reg),
|
||||
"#LDtocL",
|
||||
[(set i64:$rD,
|
||||
(PPCldTocL tglobaladdr:$disp, i64:$reg))]>, isPPC64;
|
||||
"#LDtocL", []>, isPPC64;
|
||||
def ADDItocL: Pseudo<(outs g8rc:$rD), (ins g8rc_nox0:$reg, tocentry:$disp),
|
||||
"#ADDItocL",
|
||||
[(set i64:$rD,
|
||||
(PPCaddiTocL i64:$reg, tglobaladdr:$disp))]>, isPPC64;
|
||||
"#ADDItocL", []>, isPPC64;
|
||||
}
|
||||
|
||||
// Support for thread-local storage.
|
||||
def ADDISgotTprelHA: Pseudo<(outs g8rc:$rD), (ins g8rc_nox0:$reg, s16imm64:$disp),
|
||||
|
@ -230,12 +230,6 @@ def PPClarx : SDNode<"PPCISD::LARX", SDT_PPClarx,
|
||||
def PPCstcx : SDNode<"PPCISD::STCX", SDT_PPCstcx,
|
||||
[SDNPHasChain, SDNPMayStore]>;
|
||||
|
||||
// Instructions to support medium and large code model
|
||||
def PPCaddisTocHA : SDNode<"PPCISD::ADDIS_TOC_HA", SDTIntBinOp, []>;
|
||||
def PPCldTocL : SDNode<"PPCISD::LD_TOC_L", SDTIntBinOp, [SDNPMayLoad]>;
|
||||
def PPCaddiTocL : SDNode<"PPCISD::ADDI_TOC_L", SDTIntBinOp, []>;
|
||||
|
||||
|
||||
// Instructions to support dynamic alloca.
|
||||
def SDTDynOp : SDTypeProfile<1, 2, []>;
|
||||
def PPCdynalloc : SDNode<"PPCISD::DYNALLOC", SDTDynOp, [SDNPHasChain]>;
|
||||
|
Loading…
Reference in New Issue
Block a user