[PATCH] D127115: [DAGCombine] Make sure combined nodes are added back to the worklist in topological order.

Nabeel Omer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 7 07:22:00 PDT 2023


n-omer added a comment.

In D127115#4403083 <https://reviews.llvm.org/D127115#4403083>, @deadalnix wrote:

> In D127115#4399236 <https://reviews.llvm.org/D127115#4399236>, @RKSimon wrote:
>
>>   define void @_ZN12_GLOBAL__N_114AssemblyWriterC2ERN4llvm21formatted_raw_ostreamERNS1_11SlotTrackerEPKNS1_6ModuleEPNS1_24AssemblyAnnotationWriterEbb() {
>>   entry:
>>     %__end1.sroa.5.0.copyload = load ptr, ptr poison, align 8
>>     %__end1.sroa.6.0.copyload = load ptr, ptr null, align 8
>>     %cmp.i.i.i8.i.i = icmp ne ptr null, %__end1.sroa.6.0.copyload
>>     %cmp.i.i.i.i9.i.i = icmp ne ptr null, %__end1.sroa.5.0.copyload
>>     %.not.i = select i1 %cmp.i.i.i8.i.i, i1 true, i1 %cmp.i.i.i.i9.i.i
>>     %.not.i.fr = freeze i1 %.not.i
>>     br i1 %.not.i.fr, label %for.cond.us, label %if.end.split
>>   
>>   for.cond.us:                                      ; preds = %entry
>>     unreachable
>>   
>>   if.end.split:                                     ; preds = %entry
>>     ret void
>>   }
>
> I am failing to see how this generates an infinite loop. `llc` compiles it just fine. Would you have more details on how to repro?

With this patch applied on top of `main at 2011ad0cbbf52a6f3b7bf76aa40578d3ff9fd60d` I'm able to reproduce the infinite loop with `llc`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D127115/new/

https://reviews.llvm.org/D127115



More information about the llvm-commits mailing list