[llvm] r323369 - [GlobalISel] Don't fall back to FastISel.
Amara Emerson via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 24 13:59:22 PST 2018
> On 24 Jan 2018, at 21:18, Quentin Colombet <qcolombet at apple.com> wrote:
>
> Hi Amara,
>
> Falling back to FastISel was intended to get the best performance from the fallback path.
>
> Why are we doing this change now?
>
> Cheers,
> -Quentin
>
>> On Jan 24, 2018, at 11:59 AM, Amara Emerson via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>
>> Author: aemerson
>> Date: Wed Jan 24 11:59:29 2018
>> New Revision: 323369
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=323369&view=rev
>> Log:
>> [GlobalISel] Don't fall back to FastISel.
>>
>> Apparently checking the pass structure isn't enough to ensure that we don't fall
>> back to FastISel, as it's set up as part of the SelectionDAGISel.
>>
>> Added:
>> llvm/trunk/test/CodeGen/AArch64/GlobalISel/fallback-nofastisel.ll
>> Modified:
>> llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>> llvm/trunk/lib/CodeGen/TargetPassConfig.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=323369&r1=323368&r2=323369&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Jan 24 11:59:29 2018
>> @@ -1380,8 +1380,10 @@ void SelectionDAGISel::SelectAllBasicBlo
>> FastISelFailed = false;
>> // Initialize the Fast-ISel state, if needed.
>> FastISel *FastIS = nullptr;
>> - if (TM.Options.EnableFastISel)
>> + if (TM.Options.EnableFastISel) {
>> + DEBUG(dbgs() << "Enabling fast-isel\n");
>> FastIS = TLI->createFastISel(*FuncInfo, LibInfo);
>> + }
>>
>> setupSwiftErrorVals(Fn, TLI, FuncInfo);
>>
>>
>> Modified: llvm/trunk/lib/CodeGen/TargetPassConfig.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetPassConfig.cpp?rev=323369&r1=323368&r2=323369&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/TargetPassConfig.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/TargetPassConfig.cpp Wed Jan 24 11:59:29 2018
>> @@ -708,6 +708,8 @@ bool TargetPassConfig::addCoreISelPasses
>> if (EnableGlobalISelOption == cl::BOU_TRUE ||
>> (EnableGlobalISelOption == cl::BOU_UNSET &&
>> TM->Options.EnableGlobalISel && EnableFastISelOption != cl::BOU_TRUE)) {
>> + TM->setFastISel(false);
>> +
>> if (addIRTranslator())
>> return true;
>>
>>
>> Added: llvm/trunk/test/CodeGen/AArch64/GlobalISel/fallback-nofastisel.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/fallback-nofastisel.ll?rev=323369&view=auto
>> ==============================================================================
>> --- llvm/trunk/test/CodeGen/AArch64/GlobalISel/fallback-nofastisel.ll (added)
>> +++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/fallback-nofastisel.ll Wed Jan 24 11:59:29 2018
>> @@ -0,0 +1,10 @@
>> +; RUN: llc -mtriple=aarch64_be-- %s -o /dev/null -debug-only=isel -O0 2>&1 | FileCheck %s
>> +
>> +; This test uses big endian in order to force an abort since it's not currently supported for GISel.
>> +; The purpose is to check that we don't fall back to FastISel. Checking the pass structure is insufficient
>> +; because the FastISel is set up in the SelectionDAGISel, so it doesn't appear on the pass structure.
>> +
>> +; CHECK-NOT: Enabling fast-ise
>> +define void @empty() {
>> + ret void
>> +}
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
This was always the intention IIRC, Gerolf suggested it here: https://reviews.llvm.org/D41362 <https://reviews.llvm.org/D41362> unless there’s some discussion I’ve missed. The existing tests with the -debug-pass=Structure option doesn’t show the difference between falling back to fast-isel and SelectionDAG.
Cheers,
Amara
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180124/dc6cfdcd/attachment.html>
More information about the llvm-commits
mailing list