[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