nathan binkert wrote:
>> I see no mention of specific individuals in my comment!  A lot depends
>> on whether you can hack out a few contiguous 30,000-line chunks or if
>> you'd have to do a lot of interleaving a few lines at a time to get it
>> to work.  Even in the latter case, some emacs macro creativity could
>> possibly go a long way.  I don't object to giving it a shot myself,
>> but it won't be soon.
>>     
>
> I think one automated thing that can be done immediately is to
> separate out the disassembly.  That should cut the filesize quite a
> bit.  The disassembly will need a prototype for the class, but you can
> either duplicate it in the dissassembled class (duplicating generated
> code is not bad IMHO), or you can make one header per instruction.
> You may even want to try one disassemble file per opcode.  We can
> bunch them together down the road if we've created the problem of too
> many files.  That said, gcc can compile multiple .cc files at once
> into a single .o, not sure if we can get scons to deal with that
> though.
>
> One big issue with generating multiple files is that SCons needs to
> know what those files are *before* they are generated.  I actually run
> the SLICC parser twice because of this.  I build an AST both times,
> but the first time I simply look at the AST to figure out which files
> will be generated.  The second time, I actually cause the generation
> to happen.  Seems that this method ought to work for the isa stuff as
> well.  I assume that the parsing of the ISA files isn't that
> expensive.
>
>   Nate
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>   
You could probably just include decoder.hh in the disassembly cc file.
We can look at the compile time of the new decoder.cc to get an idea of
how big of a difference removing some estimated tens of thousands of
lines of .cc makes, and we can avoid a bunch of immediate complication
as far as managing .hhes. We can look at some combination of decoder.cc
and disassembly.cc (or whatever we call it) to get an idea of what
effect doubling the amount of .hh code causes in combination with
changing the amount of .cc lines, making the simplifying assumption that
they vary independently. We could also just generate everything in the
.hh twice, once with a slightly different name, and see if that makes a
big difference.

My family is going to be visiting me starting tomorrow evening and
lasting until mid September, so my M5 time is going to be significantly
reduced in the near future. If anybody else wants to take a shot at
this, please do. If anyone can get the g++ executing the vtable thing
figured out that would also be wonderful.

Gabe
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to