Page MenuHomePhabricator

Scalable Vector IR Type (Try 3)
ClosedPublic

Authored by huntergr on Jul 2 2019, 7:09 AM.

Details

Summary

Reintroduces the scalable vector IR type from D32530, after it was reverted
a couple of times due to increasing chromium LTO build times. This latest
incarnation removes the walk over aggregate types from the verifier entirely,
in favor of rejecting scalable vectors in the isValidElementType methods in
ArrayType and StructType. This removes the 70% degradation observed with
the second repro tarball from PR42210.

Diff Detail

Repository
rL LLVM

Event Timeline

huntergr created this revision.Jul 2 2019, 7:09 AM
Ka-Ka added a subscriber: Ka-Ka.Jul 2 2019, 7:16 AM
fhahn added a subscriber: fhahn.Jul 2 2019, 8:19 AM
sdesmalen accepted this revision.Jul 2 2019, 11:56 PM

LGTM.

lib/IR/Verifier.cpp
700 ↗(On Diff #207556)

nit: you can use the Assert macro as a shorthand:
Assert(!VTy->isScalable(), "Globals cannot contain scalable vectors", &GV);

This revision is now accepted and ready to land.Jul 2 2019, 11:56 PM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptJul 5 2019, 5:48 AM
Herald added a subscriber: kristina. · View Herald Transcript