[PATCH][MC] Bundle alignment: Invalidate relaxed fragments

Derek Schuff dschuff at google.com
Thu Jan 31 15:13:15 PST 2013


Currently, when a fragment is relaxed, its size is modified, but its
offset is not (it gets laid out as a side effect of checking whether
it needs relaxation), then all subsequent fragments are invalidated
because their offsets need to change. When bundling is enabled,
relaxed fragments need to get laid out again, because the increase in
size may push it over a bundle boundary. So instead of only
invalidating subsequent fragments, also invalidate the fragment that
gets relaxed, which causes it to get laid out again. This patch also
has the same effect even in the non-bundling case, which isn't
strictly necessary, but it makes the code simpler and the cost is low
(it just means that one extra fragment gets laid out on each
relaxation pass).
This patch also fixes some trailing whitespace and fixes the
bundling-related debug output of MCFragments.

-Derek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: relax-at-bundle-end.diff
Type: application/octet-stream
Size: 3913 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130131/6a58ea85/attachment.obj>


More information about the llvm-commits mailing list