Deleted Added
full compact
PPCISelLowering.h (193574) PPCISelLowering.h (195340)
1//===-- PPCISelLowering.h - PPC32 DAG Lowering Interface --------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 68 unchanged lines hidden (view full) ---

77 /// EXTSW_32 - This is the EXTSW instruction for use with "32-bit"
78 /// registers.
79 EXTSW_32,
80
81 /// STD_32 - This is the STD instruction for use with "32-bit" registers.
82 STD_32,
83
84 /// CALL - A direct function call.
1//===-- PPCISelLowering.h - PPC32 DAG Lowering Interface --------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 68 unchanged lines hidden (view full) ---

77 /// EXTSW_32 - This is the EXTSW instruction for use with "32-bit"
78 /// registers.
79 EXTSW_32,
80
81 /// STD_32 - This is the STD instruction for use with "32-bit" registers.
82 STD_32,
83
84 /// CALL - A direct function call.
85 CALL_Macho, CALL_ELF,
85 CALL_Darwin, CALL_SVR4,
86
87 /// CHAIN,FLAG = MTCTR(VAL, CHAIN[, INFLAG]) - Directly corresponds to a
88 /// MTCTR instruction.
89 MTCTR,
90
91 /// CHAIN,FLAG = BCTRL(CHAIN, INFLAG) - Directly corresponds to a
92 /// BCTRL instruction.
86
87 /// CHAIN,FLAG = MTCTR(VAL, CHAIN[, INFLAG]) - Directly corresponds to a
88 /// MTCTR instruction.
89 MTCTR,
90
91 /// CHAIN,FLAG = BCTRL(CHAIN, INFLAG) - Directly corresponds to a
92 /// BCTRL instruction.
93 BCTRL_Macho, BCTRL_ELF,
93 BCTRL_Darwin, BCTRL_SVR4,
94
95 /// Return with a flag operand, matched by 'blr'
96 RET_FLAG,
97
98 /// R32 = MFCR(CRREG, INFLAG) - Represents the MFCR/MFOCRF instructions.
99 /// This copies the bits corresponding to the specified CRREG into the
100 /// resultant GPR. Bits corresponding to other CR regs are undefined.
101 MFCR,

--- 116 unchanged lines hidden (view full) ---

218 class PPCTargetLowering : public TargetLowering {
219 int VarArgsFrameIndex; // FrameIndex for start of varargs area.
220 int VarArgsStackOffset; // StackOffset for start of stack
221 // arguments.
222 unsigned VarArgsNumGPR; // Index of the first unused integer
223 // register for parameter passing.
224 unsigned VarArgsNumFPR; // Index of the first unused double
225 // register for parameter passing.
94
95 /// Return with a flag operand, matched by 'blr'
96 RET_FLAG,
97
98 /// R32 = MFCR(CRREG, INFLAG) - Represents the MFCR/MFOCRF instructions.
99 /// This copies the bits corresponding to the specified CRREG into the
100 /// resultant GPR. Bits corresponding to other CR regs are undefined.
101 MFCR,

--- 116 unchanged lines hidden (view full) ---

218 class PPCTargetLowering : public TargetLowering {
219 int VarArgsFrameIndex; // FrameIndex for start of varargs area.
220 int VarArgsStackOffset; // StackOffset for start of stack
221 // arguments.
222 unsigned VarArgsNumGPR; // Index of the first unused integer
223 // register for parameter passing.
224 unsigned VarArgsNumFPR; // Index of the first unused double
225 // register for parameter passing.
226 int ReturnAddrIndex; // FrameIndex for return slot.
227 const PPCSubtarget &PPCSubTarget;
228 public:
229 explicit PPCTargetLowering(PPCTargetMachine &TM);
230
231 /// getTargetNodeName() - This method returns the name of a target specific
232 /// DAG node.
233 virtual const char *getTargetNodeName(unsigned Opcode) const;
234

--- 96 unchanged lines hidden (view full) ---

331 /// IsEligibleForTailCallOptimization - Check whether the call is eligible
332 /// for tail call optimization. Target which want to do tail call
333 /// optimization should implement this function.
334 virtual bool IsEligibleForTailCallOptimization(CallSDNode *TheCall,
335 SDValue Ret,
336 SelectionDAG &DAG) const;
337
338 virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
226 const PPCSubtarget &PPCSubTarget;
227 public:
228 explicit PPCTargetLowering(PPCTargetMachine &TM);
229
230 /// getTargetNodeName() - This method returns the name of a target specific
231 /// DAG node.
232 virtual const char *getTargetNodeName(unsigned Opcode) const;
233

--- 96 unchanged lines hidden (view full) ---

330 /// IsEligibleForTailCallOptimization - Check whether the call is eligible
331 /// for tail call optimization. Target which want to do tail call
332 /// optimization should implement this function.
333 virtual bool IsEligibleForTailCallOptimization(CallSDNode *TheCall,
334 SDValue Ret,
335 SelectionDAG &DAG) const;
336
337 virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
338
339 virtual MVT getOptimalMemOpType(uint64_t Size, unsigned Align,
340 bool isSrcConst, bool isSrcStr,
341 SelectionDAG &DAG) const;
339
342
343 /// getFunctionAlignment - Return the Log2 alignment of this function.
344 virtual unsigned getFunctionAlignment(const Function *F) const;
345
340 private:
341 SDValue getFramePointerFrameIndex(SelectionDAG & DAG) const;
342 SDValue getReturnAddrFrameIndex(SelectionDAG & DAG) const;
343
344 SDValue EmitTailCallLoadFPAndRetAddr(SelectionDAG & DAG,
345 int SPDiff,
346 SDValue Chain,
347 SDValue &LROpOut,
348 SDValue &FPOpOut,
346 private:
347 SDValue getFramePointerFrameIndex(SelectionDAG & DAG) const;
348 SDValue getReturnAddrFrameIndex(SelectionDAG & DAG) const;
349
350 SDValue EmitTailCallLoadFPAndRetAddr(SelectionDAG & DAG,
351 int SPDiff,
352 SDValue Chain,
353 SDValue &LROpOut,
354 SDValue &FPOpOut,
355 bool isDarwinABI,
349 DebugLoc dl);
350
351 SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG);
352 SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG);
353 SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG);
354 SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
355 SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG);
356 SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
357 SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG);
358 SDValue LowerTRAMPOLINE(SDValue Op, SelectionDAG &DAG);
359 SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG,
360 int VarArgsFrameIndex, int VarArgsStackOffset,
361 unsigned VarArgsNumGPR, unsigned VarArgsNumFPR,
362 const PPCSubtarget &Subtarget);
363 SDValue LowerVAARG(SDValue Op, SelectionDAG &DAG, int VarArgsFrameIndex,
364 int VarArgsStackOffset, unsigned VarArgsNumGPR,
365 unsigned VarArgsNumFPR, const PPCSubtarget &Subtarget);
356 DebugLoc dl);
357
358 SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG);
359 SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG);
360 SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG);
361 SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
362 SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG);
363 SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
364 SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG);
365 SDValue LowerTRAMPOLINE(SDValue Op, SelectionDAG &DAG);
366 SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG,
367 int VarArgsFrameIndex, int VarArgsStackOffset,
368 unsigned VarArgsNumGPR, unsigned VarArgsNumFPR,
369 const PPCSubtarget &Subtarget);
370 SDValue LowerVAARG(SDValue Op, SelectionDAG &DAG, int VarArgsFrameIndex,
371 int VarArgsStackOffset, unsigned VarArgsNumGPR,
372 unsigned VarArgsNumFPR, const PPCSubtarget &Subtarget);
366 SDValue LowerFORMAL_ARGUMENTS(SDValue Op, SelectionDAG &DAG,
367 int &VarArgsFrameIndex,
368 int &VarArgsStackOffset,
369 unsigned &VarArgsNumGPR,
370 unsigned &VarArgsNumFPR,
371 const PPCSubtarget &Subtarget);
372 SDValue LowerCALL(SDValue Op, SelectionDAG &DAG,
373 const PPCSubtarget &Subtarget, TargetMachine &TM);
373 SDValue LowerFORMAL_ARGUMENTS_SVR4(SDValue Op, SelectionDAG &DAG,
374 int &VarArgsFrameIndex,
375 int &VarArgsStackOffset,
376 unsigned &VarArgsNumGPR,
377 unsigned &VarArgsNumFPR,
378 const PPCSubtarget &Subtarget);
379 SDValue LowerFORMAL_ARGUMENTS_Darwin(SDValue Op, SelectionDAG &DAG,
380 int &VarArgsFrameIndex,
381 const PPCSubtarget &Subtarget);
382 SDValue LowerCALL_Darwin(SDValue Op, SelectionDAG &DAG,
383 const PPCSubtarget &Subtarget, TargetMachine &TM);
384 SDValue LowerCALL_SVR4(SDValue Op, SelectionDAG &DAG,
385 const PPCSubtarget &Subtarget, TargetMachine &TM);
374 SDValue LowerRET(SDValue Op, SelectionDAG &DAG, TargetMachine &TM);
375 SDValue LowerSTACKRESTORE(SDValue Op, SelectionDAG &DAG,
376 const PPCSubtarget &Subtarget);
377 SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG,
378 const PPCSubtarget &Subtarget);
379 SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
380 SDValue LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG, DebugLoc dl);
381 SDValue LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG);

--- 13 unchanged lines hidden ---
386 SDValue LowerRET(SDValue Op, SelectionDAG &DAG, TargetMachine &TM);
387 SDValue LowerSTACKRESTORE(SDValue Op, SelectionDAG &DAG,
388 const PPCSubtarget &Subtarget);
389 SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG,
390 const PPCSubtarget &Subtarget);
391 SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
392 SDValue LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG, DebugLoc dl);
393 SDValue LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG);

--- 13 unchanged lines hidden ---