Skip to content

missing instcombine for GEP 0,X,Y,Z of bitcast of Ty* to [0 x Ty]* #4066

@llvmbot

Description

@llvmbot
Bugzilla Link 3694
Resolution FIXED
Resolved on Mar 02, 2009 06:39
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor
CC @nlewycky

Extended Description

test/FrontendC/2007-03-27-VarLengthArray.c now compiles to

define i32 @​e(i32 %m, i32 %n) nounwind {
entry:
%0 = alloca i32, i32 %n, align 4 ; <i32*> [#uses=2]
%1 = bitcast i32* %0 to [0 x i32]* ; <[0 x i32]> [#uses=1]
call void @​f(i32
%0) nounwind
%2 = getelementptr [0 x i32]* %1, i32 0, i32 %m ; <i32*> [#uses=1]
%3 = load i32* %2, align 4 ; [#uses=1]
ret i32 %3
}

The bitcast could be eliminated by stripping the
first index off the GEP.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzilla

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions