| Index: src/IceCfg.cpp
|
| diff --git a/src/IceCfg.cpp b/src/IceCfg.cpp
|
| index ef775fe2fc561202ebb369ee3ce95b54563c7193..0af025bb264ee1d6a04a3cdaa51b982c60d8d6e0 100644
|
| --- a/src/IceCfg.cpp
|
| +++ b/src/IceCfg.cpp
|
| @@ -119,9 +119,14 @@ void Cfg::swapNodes(NodeList &NewNodes) {
|
|
|
| template <> Variable *Cfg::makeVariable<Variable>(Type Ty) {
|
| SizeT Index = Variables.size();
|
| - Variable *Var = Target->shouldSplitToVariable64On32(Ty)
|
| - ? Variable64On32::create(this, Ty, Index)
|
| - : Variable::create(this, Ty, Index);
|
| + Variable *Var;
|
| + if (Target->shouldSplitToVariableVecOn32(Ty)) {
|
| + Var = VariableVecOn32::create(this, Ty, Index);
|
| + } else if (Target->shouldSplitToVariable64On32(Ty)) {
|
| + Var = Variable64On32::create(this, Ty, Index);
|
| + } else {
|
| + Var = Variable::create(this, Ty, Index);
|
| + }
|
| Variables.push_back(Var);
|
| return Var;
|
| }
|
| @@ -244,9 +249,13 @@ void Cfg::translate() {
|
| }
|
|
|
| // Create the Hi and Lo variables where a split was needed
|
| - for (Variable *Var : Variables)
|
| - if (auto *Var64On32 = llvm::dyn_cast<Variable64On32>(Var))
|
| + for (Variable *Var : Variables) {
|
| + if (auto *Var64On32 = llvm::dyn_cast<Variable64On32>(Var)) {
|
| Var64On32->initHiLo(this);
|
| + } else if (auto *VarVecOn32 = llvm::dyn_cast<VariableVecOn32>(Var)) {
|
| + VarVecOn32->initVecElement(this);
|
| + }
|
| + }
|
|
|
| // Instrument the Cfg, e.g. with AddressSanitizer
|
| if (!BuildDefs::minimal() && getFlags().getSanitizeAddresses()) {
|
|
|