[LLVMdev] isLCSSAForm failed
Eli Friedman
eli.friedman at gmail.com
Sun Sep 12 21:14:25 PDT 2010
On Sun, Sep 12, 2010 at 7:41 PM, Neal N. Wang <neal.wang at gmail.com> wrote:
> Hi folk,
>
> I have a Module pass. I tested the pass against the following code.
>
> ./gcc.dg/20030721-1.c
> extern void abort(void);
>
> void foo(int) __attribute__((__noinline__));
>
> void foo(int i)
> {
> abort();
> }
>
> int main()
> {
> int i;
> int first= 0;
> int last= 0;
>
> while (last<3) {
> last = first;
>
> while (first<=last) {
> first++;
>
> for (i=0;i<3;i++)
> last++;
>
> if (last>10)
> return 0;
> }
>
> foo(first);
> }
>
> return 0;
> }
> ~
>
>
> If I test my pass with "gcc -fmypass ./gcc.dg/20030721-1.c -fno-show-column
> -S -o 20030721-1.s", it works.
> But when I add -O2 to the above command line, I get the following error
> message:
>
> LCSSA.cpp:167: virtual bool<unnamed>::LCSSA::runOnLoop(llvm::Loop*,
> llvm::LPPassManager&): Assertion `L->isLCSSAForm()' failed.
> ./gcc.dg/20030721-1.c:41: internal compiler error: Aborted
>
> Any thought what "isLCSSAForm" fails mean?
My first guess is that your pass is claiming to preserve dominance
information when it doesn't... try passing -mllvm -verify-dom-info to
llvm-gcc.
-Eli
More information about the llvm-dev
mailing list