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
