This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Select llvm.aarch64.stlxr(i64, i64*)
ClosedPublic

Authored by paquette on Apr 1 2019, 3:12 PM.

Details

Summary

This adds partial instruction selection support for llvm.aarch64.stlxr.

It also factors out selection for G_INTRINSIC_W_SIDE_EFFECTS into its own function. Originally, we were only allowing G_INTRINSIC_W_SIDE_EFFECTS instructions where the 0th operand was the intrinsic ID. This new function does away with that restriction.

Also add a test, and add a GISel line to arm64-ldxr-stxr.ll.

Diff Detail

Repository
rL LLVM

Event Timeline

paquette created this revision.Apr 1 2019, 3:12 PM
aemerson accepted this revision.Apr 2 2019, 11:05 AM

LGTM.

llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
2735 ↗(On Diff #193182)

While we're moving this around can you change this to MIRBuilder instead.

This revision is now accepted and ready to land.Apr 2 2019, 11:05 AM
This revision was automatically updated to reflect the committed changes.