[/] - Rev 3750
Directory listing |
View Log |
Compare with Previous |
Last modification
- Rev 3750, 2011-09-30 20:31:06 GMT
- Author: dgilmore
- Log message:
- Fixed bug 675 - IPA generates incorrect line/file table information:
IPA currently line number information in WHIRL statements for code
being inlined is being replaced with the line number information
associated with the call (see note * below).
The fix is to have IPA generate a global file table along with maps
for each input WHIRL file that maps an index into the input file table
to an index into the global file table.
Then during processing done IP_READ_fix_tree the file index field in
the SRCPOS record in each WHIRL statement node is updated to use the
appropriate global file table index.
In output_queue::flush() the current state of the global file table is
written to the current .I file. Note that the processing to do this
is done by a newly added routine copy_DST_Type(). Also the routine
merge_directories_and_files(), which AFAICS has always generated bogus
file tables, is no longer called and has been removed.
Reviewed and approved by Gautam.
Note *: A workaround in IPO_INLINE::Process_Op_Code was added with the
PSC 1.3 merge which prevents assembly errors when out-of-ranges file
indices were detected in the .loc assembly directives (if you take out
this work around in previous version of the compiler, the IPA compile
of SPEC xalancbmk will likely fail). This change removes this
workaround.