• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/llvmCore-3425.0.33/lib/CodeGen/SelectionDAG/

Lines Matching refs:ST

71   SDValue OptimizeFloatStore(StoreSDNode *ST);
297 static void ExpandUnalignedStore(StoreSDNode *ST, SelectionDAG &DAG,
300 assert(ST->getAddressingMode() == ISD::UNINDEXED &&
302 SDValue Chain = ST->getChain();
303 SDValue Ptr = ST->getBasePtr();
304 SDValue Val = ST->getValue();
306 int Alignment = ST->getAlignment();
307 DebugLoc dl = ST->getDebugLoc();
308 if (ST->getMemoryVT().isFloatingPoint() ||
309 ST->getMemoryVT().isVector()) {
316 Result = DAG.getStore(Chain, dl, Result, Ptr, ST->getPointerInfo(),
317 ST->isVolatile(), ST->isNonTemporal(), Alignment);
318 DAGLegalize->ReplaceNode(SDValue(ST, 0), Result);
323 EVT StoredVT = ST->getMemoryVT();
351 ST->getPointerInfo().getWithOffset(Offset),
352 ST->isVolatile(), ST->isNonTemporal(),
353 MinAlign(ST->getAlignment(), Offset)));
373 ST->getPointerInfo()
375 MemVT, ST->isVolatile(),
376 ST->isNonTemporal(),
377 MinAlign(ST->getAlignment(), Offset)));
382 DAGLegalize->ReplaceNode(SDValue(ST, 0), Result);
385 assert(ST->getMemoryVT().isInteger() &&
386 !ST->getMemoryVT().isVector() &&
389 EVT NewStoredVT = ST->getMemoryVT().getHalfSizedIntegerVT(*DAG.getContext());
402 ST->getPointerInfo(), NewStoredVT,
403 ST->isVolatile(), ST->isNonTemporal(), Alignment);
408 ST->getPointerInfo().getWithOffset(IncrementSize),
409 NewStoredVT, ST->isVolatile(), ST->isNonTemporal(),
414 DAGLegalize->ReplaceNode(SDValue(ST, 0), Result);
638 SDValue SelectionDAGLegalize::OptimizeFloatStore(StoreSDNode* ST) {
646 SDValue Chain = ST->getChain();
647 SDValue Ptr = ST->getBasePtr();
648 unsigned Alignment = ST->getAlignment();
649 bool isVolatile = ST->isVolatile();
650 bool isNonTemporal = ST->isNonTemporal();
651 DebugLoc dl = ST->getDebugLoc();
652 if (ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(ST->getValue())) {
658 return DAG.getStore(Chain, dl, Con, Ptr, ST->getPointerInfo(),
667 return DAG.getStore(Chain, dl, Con, Ptr, ST->getPointerInfo(),
671 if (TLI.isTypeLegal(MVT::i32) && !ST->isVolatile()) {
680 Lo = DAG.getStore(Chain, dl, Lo, Ptr, ST->getPointerInfo(), isVolatile,
685 ST->getPointerInfo().getWithOffset(4),
696 StoreSDNode *ST = cast<StoreSDNode>(Node);
697 SDValue Chain = ST->getChain();
698 SDValue Ptr = ST->getBasePtr();
701 unsigned Alignment = ST->getAlignment();
702 bool isVolatile = ST->isVolatile();
703 bool isNonTemporal = ST->isNonTemporal();
705 if (!ST->isTruncatingStore()) {
706 if (SDNode *OptStore = OptimizeFloatStore(ST).getNode()) {
707 ReplaceNode(ST, OptStore);
712 SDValue Value = ST->getValue();
719 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
720 Type *Ty = ST->getMemoryVT().getTypeForEVT(*DAG.getContext());
722 if (ST->getAlignment() < ABIAlignment)
739 ST->getPointerInfo(), isVolatile,
748 SDValue Value = ST->getValue();
750 EVT StVT = ST->getMemoryVT();
761 DAG.getTruncStore(Chain, dl, Value, Ptr, ST->getPointerInfo(),
781 Lo = DAG.getTruncStore(Chain, dl, Value, Ptr, ST->getPointerInfo(),
793 ST->getPointerInfo().getWithOffset(IncrementSize),
803 Hi = DAG.getTruncStore(Chain, dl, Hi, Ptr, ST->getPointerInfo(),
811 ST->getPointerInfo().getWithOffset(IncrementSize),
820 switch (TLI.getTruncStoreAction(ST->getValue().getValueType(), StVT)) {
825 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
826 Type *Ty = ST->getMemoryVT().getTypeForEVT(*DAG.getContext());
828 if (ST->getAlignment() < ABIAlignment)
847 DAG.getStore(Chain, dl, Value, Ptr, ST->getPointerInfo(),