summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LineEditor
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2015-01-08 20:44:50 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2015-01-08 20:44:50 +0000
commit442b40c2eb0f047d96182d1f991858dcdb8a372b (patch)
treebd4a9f60ca2272f2a29a490dabf8eee4548b627c /llvm/lib/LineEditor
parent5914a97af8c9964bd3103fb798a758b3706e39c1 (diff)
downloadbcm5719-llvm-442b40c2eb0f047d96182d1f991858dcdb8a372b.tar.gz
bcm5719-llvm-442b40c2eb0f047d96182d1f991858dcdb8a372b.zip
[ARM] Fix a bug in constant island pass that was triggering an assertion.
The assert was being triggered when the distance between a constant pool entry and its user exceeded the maximally allowed distance after thumb2 branch shortening. A padding was inserted after a thumb2 branch instruction was shrunk, which caused the user to be out of range. This is wrong as the padding should have been inserted by the layout algorithm so that the distance between two instructions doesn't grow later during thumb2 instruction optimization. This commit fixes the code in ARMConstantIslands::createNewWater to call computeBlockSize and set BasicBlock::Unalign when a branch instruction is inserted to create new water after a basic block. A non-zero Unalign causes the worst-case padding to be inserted when adjustBBOffsetsAfter is called to recompute the basic block offsets. rdar://problem/19130476 llvm-svn: 225467
Diffstat (limited to 'llvm/lib/LineEditor')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud