Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Side by Side Diff: lib/Target/ARM/ARMISelLowering.h

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/Target/ARM/ARMISelDAGToDAG.cpp ('k') | lib/Target/ARM/ARMISelLowering.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- ARMISelLowering.h - ARM DAG Lowering Interface ----------*- C++ -*-===// 1 //===-- ARMISelLowering.h - ARM DAG Lowering Interface ----------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file defines the interfaces that ARM uses to lower LLVM code into a 10 // This file defines the interfaces that ARM uses to lower LLVM code into a
11 // selection DAG. 11 // selection DAG.
12 // 12 //
13 //===----------------------------------------------------------------------===// 13 //===----------------------------------------------------------------------===//
14 14
15 #ifndef LLVM_LIB_TARGET_ARM_ARMISELLOWERING_H 15 #ifndef LLVM_LIB_TARGET_ARM_ARMISELLOWERING_H
16 #define LLVM_LIB_TARGET_ARM_ARMISELLOWERING_H 16 #define LLVM_LIB_TARGET_ARM_ARMISELLOWERING_H
17 17
18 #include "MCTargetDesc/ARMBaseInfo.h" 18 #include "MCTargetDesc/ARMBaseInfo.h"
19 #include "llvm/CodeGen/CallingConvLower.h" 19 #include "llvm/CodeGen/CallingConvLower.h"
20 #include "llvm/CodeGen/SelectionDAG.h" 20 #include "llvm/CodeGen/SelectionDAG.h"
21 #include "llvm/Support/CommandLine.h" // @LOCALMOD
21 #include "llvm/Target/TargetLowering.h" 22 #include "llvm/Target/TargetLowering.h"
22 #include <vector> 23 #include <vector>
23 24
24 namespace llvm { 25 namespace llvm {
25 class ARMConstantPoolValue; 26 class ARMConstantPoolValue;
26 class ARMSubtarget; 27 class ARMSubtarget;
27 28
28 namespace ARMISD { 29 namespace ARMISD {
29 // ARM Specific DAG Nodes 30 // ARM Specific DAG Nodes
30 enum NodeType { 31 enum NodeType {
31 // Start the numbering where the builtin ops and target ops leave off. 32 // Start the numbering where the builtin ops and target ops leave off.
32 FIRST_NUMBER = ISD::BUILTIN_OP_END, 33 FIRST_NUMBER = ISD::BUILTIN_OP_END,
33 34
34 Wrapper, // Wrapper - A wrapper node for TargetConstantPool, 35 Wrapper, // Wrapper - A wrapper node for TargetConstantPool,
35 // TargetExternalSymbol, and TargetGlobalAddress. 36 // TargetExternalSymbol, and TargetGlobalAddress.
36 WrapperPIC, // WrapperPIC - A wrapper node for TargetGlobalAddress in 37 WrapperPIC, // WrapperPIC - A wrapper node for TargetGlobalAddress in
37 // PIC mode. 38 // PIC mode.
38 WrapperJT, // WrapperJT - A wrapper node for TargetJumpTable 39 WrapperJT, // WrapperJT - A wrapper node for TargetJumpTable
39 40 // @LOCALMOD-START
41 WrapperJT2, // like WrapperJT but without the UID
42 WrapperGOT, // A Wrapper node for GOT addresses
43 EH_RETURN, // For LowerEH_RETURN
44 // @LOCALMOD-END
40 // Add pseudo op to model memcpy for struct byval. 45 // Add pseudo op to model memcpy for struct byval.
41 COPY_STRUCT_BYVAL, 46 COPY_STRUCT_BYVAL,
42 47
43 CALL, // Function call. 48 CALL, // Function call.
44 CALL_PRED, // Function call that's predicable. 49 CALL_PRED, // Function call that's predicable.
45 CALL_NOLINK, // Function call with branch not branch-and-link. 50 CALL_NOLINK, // Function call with branch not branch-and-link.
46 tCALL, // Thumb function call. 51 tCALL, // Thumb function call.
47 BRCOND, // Conditional branch. 52 BRCOND, // Conditional branch.
48 BR_JT, // Jumptable branch. 53 BR_JT, // Jumptable branch.
49 BR2_JT, // Jumptable branch (2 level - jumptable entry is a jump). 54 BR2_JT, // Jumptable branch (2 level - jumptable entry is a jump).
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 SDValue LowerBlockAddress(SDValue Op, SelectionDAG &DAG) const; 467 SDValue LowerBlockAddress(SDValue Op, SelectionDAG &DAG) const;
463 SDValue LowerGlobalAddressDarwin(SDValue Op, SelectionDAG &DAG) const; 468 SDValue LowerGlobalAddressDarwin(SDValue Op, SelectionDAG &DAG) const;
464 SDValue LowerGlobalAddressELF(SDValue Op, SelectionDAG &DAG) const; 469 SDValue LowerGlobalAddressELF(SDValue Op, SelectionDAG &DAG) const;
465 SDValue LowerGlobalAddressWindows(SDValue Op, SelectionDAG &DAG) const; 470 SDValue LowerGlobalAddressWindows(SDValue Op, SelectionDAG &DAG) const;
466 SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const; 471 SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const;
467 SDValue LowerToTLSGeneralDynamicModel(GlobalAddressSDNode *GA, 472 SDValue LowerToTLSGeneralDynamicModel(GlobalAddressSDNode *GA,
468 SelectionDAG &DAG) const; 473 SelectionDAG &DAG) const;
469 SDValue LowerToTLSExecModels(GlobalAddressSDNode *GA, 474 SDValue LowerToTLSExecModels(GlobalAddressSDNode *GA,
470 SelectionDAG &DAG, 475 SelectionDAG &DAG,
471 TLSModel::Model model) const; 476 TLSModel::Model model) const;
477 // @LOCALMOD-START
478 SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG) const;
479 SDValue LowerEH_RETURN(SDValue Op, SelectionDAG &DAG) const;
480 // @LOCALMOD-END
481
472 SDValue LowerGLOBAL_OFFSET_TABLE(SDValue Op, SelectionDAG &DAG) const; 482 SDValue LowerGLOBAL_OFFSET_TABLE(SDValue Op, SelectionDAG &DAG) const;
473 SDValue LowerBR_JT(SDValue Op, SelectionDAG &DAG) const; 483 SDValue LowerBR_JT(SDValue Op, SelectionDAG &DAG) const;
474 SDValue LowerXALUO(SDValue Op, SelectionDAG &DAG) const; 484 SDValue LowerXALUO(SDValue Op, SelectionDAG &DAG) const;
475 SDValue LowerSELECT(SDValue Op, SelectionDAG &DAG) const; 485 SDValue LowerSELECT(SDValue Op, SelectionDAG &DAG) const;
476 SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const; 486 SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const;
477 SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG) const; 487 SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG) const;
478 SDValue LowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) const; 488 SDValue LowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) const;
479 SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const; 489 SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const;
480 SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const; 490 SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const;
481 SDValue LowerShiftRightParts(SDValue Op, SelectionDAG &DAG) const; 491 SDValue LowerShiftRightParts(SDValue Op, SelectionDAG &DAG) const;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 enum NEONModImmType { 621 enum NEONModImmType {
612 VMOVModImm, 622 VMOVModImm,
613 VMVNModImm, 623 VMVNModImm,
614 OtherModImm 624 OtherModImm
615 }; 625 };
616 626
617 namespace ARM { 627 namespace ARM {
618 FastISel *createFastISel(FunctionLoweringInfo &funcInfo, 628 FastISel *createFastISel(FunctionLoweringInfo &funcInfo,
619 const TargetLibraryInfo *libInfo); 629 const TargetLibraryInfo *libInfo);
620 } 630 }
631
632 // @LOCALMOD-START
633 extern cl::opt<bool> EnableARMAEABIFunctions;
634 // @LOCALMOD-END
621 } 635 }
622 636
623 #endif // ARMISELLOWERING_H 637 #endif // ARMISELLOWERING_H
OLDNEW
« no previous file with comments | « lib/Target/ARM/ARMISelDAGToDAG.cpp ('k') | lib/Target/ARM/ARMISelLowering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698