[llvm-commits] Speeding up instruction selection (ScheduleDAGRRList)

Dan Gohman gohman at apple.com
Mon Apr 28 10:27:57 PDT 2008


On Apr 24, 2008, at 6:07 AM, Roman Levenstein wrote:
>
>> /Users/echeng/LLVM/llvm/Release/bin/llc  -f Output/sqlite3.llvm.bc -o
>> Output/sqlite3.llc.s
>> Assertion failed: (RemovedNum == 1 && "Not in queue!"), function
>> remove, file ScheduleDAGRRList.cpp, line 1321.
>
> Fixed. This was a bug related to the CapturePred function. It was
> updating the state of the SUnit before removing it. As a result, the
> comparison operators were working incorrectly and this SUnit could not
> be removed properly.

This is something that could cause subtle oddities in the
priority_queue implementation too. Good catch!

>
>
> With this patch, everything compiles without any problems on my  
> machine.
>
> The new patch is attached.

This looks good; please commit it.

I expect we'll be revisiting the use of std::set, but in the testing  
I've done
it doesn't seem to be a big enough factor to hold this up.

Dan




More information about the llvm-commits mailing list