[llvm-commits] [llvm] r132217 - in /llvm/trunk: include/llvm/Target/TargetLowering.h lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeTypes.h lib/CodeGen/SelectionDAG/TargetLowering.cpp lib/Transforms/Scalar/CodeGenPrepare.cpp

Duncan Sands baldrick at free.fr
Sat May 28 01:42:15 PDT 2011


Hi Nadav, good to see you found the bug.  Maybe you should add a testcase for
it?

> @@ -1814,6 +1732,80 @@
>
>     ValueTypeActionImpl ValueTypeActions;
>
> +  typedef std::pair<LegalizeAction, EVT>  LegalizeKind;
> +
> +  LegalizeKind
> +  getTypeConversion(LLVMContext&Context, EVT VT) const {
> +    // If this is a simple type, use the ComputeRegisterProp mechanism.
> +    if (VT.isSimple()) {
> +      assert((unsigned)VT.getSimpleVT().SimpleTy<
> +             array_lengthof(TransformToType));
> +      EVT NVT = TransformToType[VT.getSimpleVT().SimpleTy];
> +      LegalizeAction LA = ValueTypeActions.getTypeAction(VT.getSimpleVT());
> +      if (NVT.isSimple()&&  LA != Legal)

This condition /\ should be folded into the assertion \/

> +        assert(ValueTypeActions.getTypeAction(NVT.getSimpleVT()) != Promote&&
> +               "Promote may not follow Expand or Promote");

Ciao, Duncan.



More information about the llvm-commits mailing list