[llvm-dev] EnableFastISel

Yaniv via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 30 14:50:25 PDT 2017


Not the right mailing list?

On Tue, 2017-10-24 at 00:55 +0300, Yaniv wrote:
> Hi,
> 
> In SelectionDAGISel::SelectAllBasicBlocks
> 
>   if (TM.Options.EnableFastISel)
>     FastIS = TLI->createFastISel(*FuncInfo, LibInfo);
> 
> followed by
> 
>   if (!FastIS) {
>     LowerArguments(Fn);
>   } else {
>   
> The above implies that implementing FastIS is optional.
> 
> 
> In contrast to that, testing whether FastIS is actually been used is
> done by testing if TM.Options.EnableFastISel is set.
> 
> For example in SelectionDAGISel::LowerArguments
> 
>     SDB->setValue(&Arg, Res);
>     if (!TM.Options.EnableFastISel && Res.getOpcode() ==  
>                                                    ISD::BUILD_PAIR) {
>       if (LoadSDNode *LNode =
>           dyn_cast<LoadSDNode>(Res.getOperand(0).getNode()))
>         if (FrameIndexSDNode *FI =
>             dyn_cast<FrameIndexSDNode>(LNode-
> >getBasePtr().getNode()))
>         FuncInfo->setArgumentFrameIndex(&Arg, FI->getIndex());
>     }
> 
> 
> Is it in BUG or am I missing something?
> 
> Thanks,
> Yaniv


More information about the llvm-dev mailing list