[gnu.gcc] data flow analysis through bitfields?

wilson@carcoar.Stanford.EDU (Paul Wilson) (05/30/89)

I'm trying to figure out whether the optimization and code generation
phases of gcc could profitably be snarfed for a compiler for a symbolic
language like Lisp or Smalltalk.

a couple of questions:

   1) does gcc propagate constants through bitfields?  (e.g., if I store
      a constant zero into the low two bits of a word, and then later extract
      those bits and compare them, will that comparison be optimized away?)

   2) is there a simple way of adding assertions to the RTL?  (e.g., "I
      promise that the low two bits of this register will contain zeroes
      at this point in the code")

The point of the above would be to exploit run-time type representations
(tags) so that the optimizer could do implicit type-flow analysis as 
data-flow analysis.

Any info or comments would be appreciated.

Thanks prematurely,

   Paul

Paul R. Wilson                         
Human-Computer Interaction Laboratory     lab ph.: (312) 996-6013
U. of Illin. at C. EECS Dept. (M/C 154)   wilson@carcoar.stanford.edu
Box 4348   Chicago,IL 60680 
Paul R. Wilson                         
Human-Computer Interaction Laboratory    lab ph.: (312) 996-6013
U. of Ill. at Chi. EECS Dept. (M/C 154) 
Box 4348   Chicago,IL 60680              wilson@carcoar.stanford.edu