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

Side by Side Diff: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Issue 7792066: [llvm] Conditionally include target intrinsics, based on --enable-target Base URL: https://llvm.org/svn/llvm-project/llvm/trunk/
Patch Set: cleanups Created 9 years, 3 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/Analysis/ValueTracking.cpp ('k') | lib/Target/CBackend/CBackend.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 //===-- SelectionDAGBuilder.cpp - Selection-DAG building ------------------===// 1 //===-- SelectionDAGBuilder.cpp - Selection-DAG building ------------------===//
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 implements routines for translating from LLVM IR into SelectionDAG IR. 10 // This implements routines for translating from LLVM IR into SelectionDAG IR.
(...skipping 4750 matching lines...) Expand 10 before | Expand all | Expand 10 after
4761 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_LONGJMP, dl, MVT::Other, 4761 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_LONGJMP, dl, MVT::Other,
4762 getRoot(), getValue(I.getArgOperand(0)))); 4762 getRoot(), getValue(I.getArgOperand(0))));
4763 return 0; 4763 return 0;
4764 } 4764 }
4765 case Intrinsic::eh_sjlj_dispatch_setup: { 4765 case Intrinsic::eh_sjlj_dispatch_setup: {
4766 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_DISPATCHSETUP, dl, MVT::Other, 4766 DAG.setRoot(DAG.getNode(ISD::EH_SJLJ_DISPATCHSETUP, dl, MVT::Other,
4767 getRoot(), getValue(I.getArgOperand(0)))); 4767 getRoot(), getValue(I.getArgOperand(0))));
4768 return 0; 4768 return 0;
4769 } 4769 }
4770 4770
4771 #if defined(TARGET_ENABLED_X86)
4771 case Intrinsic::x86_mmx_pslli_w: 4772 case Intrinsic::x86_mmx_pslli_w:
4772 case Intrinsic::x86_mmx_pslli_d: 4773 case Intrinsic::x86_mmx_pslli_d:
4773 case Intrinsic::x86_mmx_pslli_q: 4774 case Intrinsic::x86_mmx_pslli_q:
4774 case Intrinsic::x86_mmx_psrli_w: 4775 case Intrinsic::x86_mmx_psrli_w:
4775 case Intrinsic::x86_mmx_psrli_d: 4776 case Intrinsic::x86_mmx_psrli_d:
4776 case Intrinsic::x86_mmx_psrli_q: 4777 case Intrinsic::x86_mmx_psrli_q:
4777 case Intrinsic::x86_mmx_psrai_w: 4778 case Intrinsic::x86_mmx_psrai_w:
4778 case Intrinsic::x86_mmx_psrai_d: { 4779 case Intrinsic::x86_mmx_psrai_d: {
4779 SDValue ShAmt = getValue(I.getArgOperand(1)); 4780 SDValue ShAmt = getValue(I.getArgOperand(1));
4780 if (isa<ConstantSDNode>(ShAmt)) { 4781 if (isa<ConstantSDNode>(ShAmt)) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
4821 ShOps[1] = DAG.getConstant(0, MVT::i32); 4822 ShOps[1] = DAG.getConstant(0, MVT::i32);
4822 ShAmt = DAG.getNode(ISD::BUILD_VECTOR, dl, ShAmtVT, &ShOps[0], 2); 4823 ShAmt = DAG.getNode(ISD::BUILD_VECTOR, dl, ShAmtVT, &ShOps[0], 2);
4823 EVT DestVT = TLI.getValueType(I.getType()); 4824 EVT DestVT = TLI.getValueType(I.getType());
4824 ShAmt = DAG.getNode(ISD::BITCAST, dl, DestVT, ShAmt); 4825 ShAmt = DAG.getNode(ISD::BITCAST, dl, DestVT, ShAmt);
4825 Res = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, 4826 Res = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT,
4826 DAG.getConstant(NewIntrinsic, MVT::i32), 4827 DAG.getConstant(NewIntrinsic, MVT::i32),
4827 getValue(I.getArgOperand(0)), ShAmt); 4828 getValue(I.getArgOperand(0)), ShAmt);
4828 setValue(&I, Res); 4829 setValue(&I, Res);
4829 return 0; 4830 return 0;
4830 } 4831 }
4832 #endif // TARGET_ENABLED_X86
4831 case Intrinsic::convertff: 4833 case Intrinsic::convertff:
4832 case Intrinsic::convertfsi: 4834 case Intrinsic::convertfsi:
4833 case Intrinsic::convertfui: 4835 case Intrinsic::convertfui:
4834 case Intrinsic::convertsif: 4836 case Intrinsic::convertsif:
4835 case Intrinsic::convertuif: 4837 case Intrinsic::convertuif:
4836 case Intrinsic::convertss: 4838 case Intrinsic::convertss:
4837 case Intrinsic::convertsu: 4839 case Intrinsic::convertsu:
4838 case Intrinsic::convertus: 4840 case Intrinsic::convertus:
4839 case Intrinsic::convertuu: { 4841 case Intrinsic::convertuu: {
4840 ISD::CvtCode Code = ISD::CVT_INVALID; 4842 ISD::CvtCode Code = ISD::CVT_INVALID;
(...skipping 1993 matching lines...) Expand 10 before | Expand all | Expand 10 after
6834 EVT VT = ValueVTs[vti]; 6836 EVT VT = ValueVTs[vti];
6835 unsigned NumRegisters = TLI.getNumRegisters(*DAG.getContext(), VT); 6837 unsigned NumRegisters = TLI.getNumRegisters(*DAG.getContext(), VT);
6836 for (unsigned i = 0, e = NumRegisters; i != e; ++i) 6838 for (unsigned i = 0, e = NumRegisters; i != e; ++i)
6837 FuncInfo.PHINodesToUpdate.push_back(std::make_pair(MBBI++, Reg+i)); 6839 FuncInfo.PHINodesToUpdate.push_back(std::make_pair(MBBI++, Reg+i));
6838 Reg += NumRegisters; 6840 Reg += NumRegisters;
6839 } 6841 }
6840 } 6842 }
6841 } 6843 }
6842 ConstantsOut.clear(); 6844 ConstantsOut.clear();
6843 } 6845 }
OLDNEW
« no previous file with comments | « lib/Analysis/ValueTracking.cpp ('k') | lib/Target/CBackend/CBackend.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698