This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa mudflap] uninitialized read checking


Hi -

dnovillo wrote:

> > 	* tree-mudflap.c (mx_xfn_indirect_ref): Use a stack of flags for
> > 	tracking pointer deference reads vs writes.
> >
> Ouch, we really should run mudflap after the SSA pass.  But I
> guess we'll need to do this repeated work for the time being.

It's actually very little extra work, since we're traversing the
expression trees only once, top dosn.

There is another interesting complication, however.  The code that
mudflap inserts (in the form of statement expressions that replace
pointer deferences) is not GIMPLE until a postprocessing step.  That
means that mudflap actually needs to accept non-GIMPLE inputs
(instrumentation emitted for an outer-nesting construct), and make
the same sort of lvalue/rvalue determination.  If the SSA stuff were
the only way to figure out lvalue/rvalue distinctions, then the function
tree would have to be gimplified after every individual instrumentation
insertion, SSA gunk recalculated, and the mudflap transform tried again
(for the subsequent constructs).  That sounds much worse than the
implemented scheme.


- FChE

Attachment: msg02378/pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]