This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Attacking quadratic behaviors associated with SWITCH_EXPR
Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> writes:
> statement annotations are huge, so this would indeed be a bad idea.
> I think it would be better to avoid using tree for CASE_LABEL_EXPR
> inside switch statement completely. I.e. TREE_OPERAND (switch, 2)
> would no longer be a TREE_VEC of CASE_LABEL_EXPRs, but instead
> a wrapper tree node (of type tcc_exceptional) containing
> a VEC(case_label_type), where case_label_type would contain just the
> fields necessary for the case label.
I concur. In fact, I'd go farther, and suggest that we ought to be
working with edges directly, everywhere we are currently working with
labels, except in the parsers.
One might even speculate about the feasibility of constructing the
cfg inside the parser...
zw