This is an archive of the discontinued LLVM Phabricator instance.

AArch64: add FastISel support for arm64_32
AcceptedPublic

Authored by t.p.northover on Nov 20 2019, 2:38 AM.

Details

Summary

This patch is pretty simple, it just adds the necessary pointer handling to AArch64FastISel.cpp so that it can be used on arm64_32.

Diff Detail

Event Timeline

t.p.northover created this revision.Nov 20 2019, 2:38 AM
Gerolf added a subscriber: Gerolf.

A question and a nit to get it started.

+ Amara, Jessica, Francis.

llvm/lib/Target/AArch64/AArch64FastISel.cpp
1206

Should that check be before the canonicalizations above?

2133

if (Subtarget->isTargetILP32() && ....), then delete the assert. Maybe create a function/lambda? See below.

2210

only if subtarget is ilp32 ...

Ups, I removed the original reviewers?! Please add anyone else I missed. I only remember Kristof. Sorry for this nuisance!

-Gerolf

thegameg accepted this revision.Dec 17 2019, 1:34 PM

I don't have much knowledge in this part of the code, but everything looks good to me. Maybe add a simple comment at the top of the file with an overview of what was needed to add support for ILP32 (maybe pointing out that it consists of using ands, extractsubregs, etc.) ?

This revision is now accepted and ready to land.Dec 17 2019, 1:34 PM