[llvm-commits] [llvm] r122170 - in /llvm/trunk: lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp test/CodeGen/X86/critical-edge-split-2.ll
Dan Gohman
gohman at apple.com
Mon Dec 20 10:54:40 PST 2010
On Dec 18, 2010, at 11:30 PM, Chris Lattner wrote:
>
> On Dec 18, 2010, at 11:19 PM, Jakob Stoklund Olesen wrote:
>
>>
>> On Dec 18, 2010, at 8:58 PM, Chris Lattner wrote:
>>
>>> Author: lattner
>>> Date: Sat Dec 18 22:58:57 2010
>>> New Revision: 122170
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=122170&view=rev
>>> Log:
>>> fix PR8642: if a critical edge has a PHI value that can trap,
>>> isel is *required* to split the edge. PHI values get evaluated
>>> on the edge, not in their predecessor block.
>>
>> What happens if the predecessor block is terminated by indirectbr, so the edge can't be split?
>
> Huh, good question... I don't see a really robust answer...
Why does LLVM need the concept of trapping constants? Prohibiting
them would be a robust answer, at seemingly little practical cost.
Dan
More information about the llvm-commits
mailing list