OSDN Git Service

[MC] Bundle alignment: Invalidate relaxed fragments
authorDerek Schuff <dschuff@google.com>
Tue, 5 Feb 2013 17:55:27 +0000 (17:55 +0000)
committerDerek Schuff <dschuff@google.com>
Tue, 5 Feb 2013 17:55:27 +0000 (17:55 +0000)
commitf918d7fd7393049bc87bc03fda2d2cd3cec1dacb
tree1a4d4eb30a7e87383e67c3e47147fec66c04044c
parenta499d2bcef0c1001c60d752d356e50eed2402ca8
[MC] Bundle alignment: Invalidate relaxed fragments

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 fixes some trailing whitespace and fixes the
bundling-related debug output of MCFragments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174401 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCAsmLayout.h
lib/MC/MCAssembler.cpp
test/MC/X86/AlignedBundling/relax-at-bundle-end.s [new file with mode: 0644]