This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] use BL without nop for some internal calls for fast-isel.
AbandonedPublic

Authored by shchenz on May 23 2022, 7:21 AM.

Details

Reviewers
umesh.kalappa0
nemanjai
Group Reviewers
Restricted Project
Summary

This fixes pr55607. Now we can generate BL without nop instruction for internal function for fast-isel.

Diff Detail

Event Timeline

shchenz created this revision.May 23 2022, 7:21 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 23 2022, 7:21 AM
shchenz requested review of this revision.May 23 2022, 7:21 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 23 2022, 7:21 AM

The more analysis we do in FastISel, the less "fast" it becomes. And the tradeoff here is simply a nop after a call which hardly seems like a concern at -O0.

The more analysis we do in FastISel, the less "fast" it becomes. And the tradeoff here is simply a nop after a call which hardly seems like a concern at -O0.

I am fine to abandon this.

But see the touched lines FIXME: We can and should optimize away the NOP for local calls.. And I tested other compilers like xlc/gcc on PowerPC, they are both not generating nop for O0. The nop may also have impact to the linker?

@umesh.kalappa0 are you OK we abandon this patch and cancel the PR https://github.com/llvm/llvm-project/issues/55607?

shchenz abandoned this revision.Jun 5 2022, 7:55 PM

As discussed, use option to disable fast-isel to avoid the redundant nop for issue https://github.com/llvm/llvm-project/issues/55607.