mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-02 19:24:25 +00:00
Since ARM emits inline jump tables as part of the ConstantIsland pass,
it should set the jump table encloding the EK_Inline. This prevents a second, unused, copy of the table from being emitted after the function body. PR6581. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108730 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1628,6 +1628,10 @@ static SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG) {
|
|||||||
return DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, Res);
|
return DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, Res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned ARMTargetLowering::getJumpTableEncoding() const {
|
||||||
|
return MachineJumpTableInfo::EK_Inline;
|
||||||
|
}
|
||||||
|
|
||||||
SDValue ARMTargetLowering::LowerBlockAddress(SDValue Op,
|
SDValue ARMTargetLowering::LowerBlockAddress(SDValue Op,
|
||||||
SelectionDAG &DAG) const {
|
SelectionDAG &DAG) const {
|
||||||
MachineFunction &MF = DAG.getMachineFunction();
|
MachineFunction &MF = DAG.getMachineFunction();
|
||||||
|
@ -175,6 +175,8 @@ namespace llvm {
|
|||||||
public:
|
public:
|
||||||
explicit ARMTargetLowering(TargetMachine &TM);
|
explicit ARMTargetLowering(TargetMachine &TM);
|
||||||
|
|
||||||
|
virtual unsigned getJumpTableEncoding(void) const;
|
||||||
|
|
||||||
virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const;
|
virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const;
|
||||||
|
|
||||||
/// ReplaceNodeResults - Replace the results of node with an illegal result
|
/// ReplaceNodeResults - Replace the results of node with an illegal result
|
||||||
|
Reference in New Issue
Block a user