HomePhabricator

Devirtualize Attr and all subclasses.

Description

Devirtualize Attr and all subclasses.

We know all subclasses in tblgen so just generate a giant switch for
the few virtual methods or turn them into a member variable using spare
bits. The giant jump tables aren't pretty but still much smaller than
a vtable for every attribute, shrinking Release+Asserts clang by ~400k.

Also halves the size of the Attr base class. No functional change
intended.

Details

Committed
d0kMar 19 2015, 9:06 AM
Parents
rL232725: [Hexagon] ENDLOOP is a non-reversible conditional branch
Branches
Unknown
Tags
Unknown