Page MenuHomePhabricator

[IRSim][IROutliner] Allowing Intrinsic Calls to be Used in Similarity Matching and Outlined Regions
AcceptedPublic

Authored by AndrewLitteken on Sep 8 2021, 9:52 AM.

Details

Reviewers
paquette
jroelofs
Summary

Due to some complications with lifetime, and assume-like intrinsics, intrinsics were not included as outlinable instructions. This patch opens up most intrinsics, excluding lifetime and assume-like intrinsics, to be outlined. For similarity, it is required that the intrinsic IDs, and the intrinsics names match exactly, as well as the function type. This puts intrinsics in a different class than normal call instructions (https://reviews.llvm.org/D109448), where the name will no longer have to match.

This also adds an additional command line flag debug option to disable outlining intrinsics.

Diff Detail

Event Timeline

AndrewLitteken created this revision.Sep 8 2021, 9:52 AM
AndrewLitteken requested review of this revision.Sep 8 2021, 9:52 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 8 2021, 9:52 AM
paquette added inline comments.Sep 14 2021, 10:13 AM
llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
226–249

can you add some comments?

506

add comments for why these are disabled?

537

this comment can probably be simplified

Adding comments.

paquette added inline comments.Sep 15 2021, 11:51 AM
llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
226–249

this always returns, right?

why not just make it an if?

246

this can also just be an if?

510

can you expand on the last sentence here?

llvm/lib/Analysis/IRSimilarityIdentifier.cpp
34

change passive voice?

"Don't match or outline intrinsics."

Updating comments

This revision is now accepted and ready to land.Sep 16 2021, 9:17 AM