#ifndef LLVM_CODEGEN_SELECTIONDAGNODES_H
#define LLVM_CODEGEN_SELECTIONDAGNODES_H
-#include "llvm/GlobalVariable.h"
#include "llvm/Value.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/GraphTraits.h"
/// VINSERT_VECTOR_ELT(VECTOR, VAL, IDX, COUNT,TYPE) - Given a vector
/// VECTOR, an element ELEMENT, and a (potentially variable) index IDX,
- /// return an vector with the specified element of VECTOR replaced with VAL.
+ /// return a vector with the specified element of VECTOR replaced with VAL.
/// COUNT and TYPE specify the type of vector, as is standard for V* nodes.
VINSERT_VECTOR_ELT,
/// Simple abstract vector operators. Unlike the integer and floating point
/// binary operators, these nodes also take two additional operands:
/// a constant element count, and a value type node indicating the type of
- /// the elements. The order is count, type, op0, op1. All vector opcodes,
+ /// the elements. The order is op0, op1, count, type. All vector opcodes,
/// including VLOAD and VConstant must currently have count and type as
/// their last two operands.
VADD, VSUB, VMUL, VSDIV, VUDIV,
protected:
friend class SelectionDAG;
GlobalAddressSDNode(bool isTarget, const GlobalValue *GA, MVT::ValueType VT,
- int o = 0)
- : SDNode(dyn_cast<GlobalVariable>(GA) &&
- dyn_cast<GlobalVariable>(GA)->isThreadLocal() ?
- // Thread Local
- (isTarget ? ISD::TargetGlobalTLSAddress : ISD::GlobalTLSAddress) :
- // Non Thread Local
- (isTarget ? ISD::TargetGlobalAddress : ISD::GlobalAddress),
- getSDVTList(VT)), Offset(o) {
- TheGlobal = const_cast<GlobalValue*>(GA);
- }
+ int o = 0);
public:
GlobalValue *getGlobal() const { return TheGlobal; }