Skip to content

可能的优化 #108

Description

@Lethe10137
int foo(int a1, int a2, int a3, int a4, int a5){

    int b1 = a1 * a2;
    int b2 = a5 + a3;
    int b3 = b1 * a4;
    int b5 = a1 * a2 * a4;
    if(a3 > b5){
        int a7 = b2 + b5; // a3 + a5 + a1 * a2 * a4
        int a9 = a2 * a4 + 1;
        int a8 = a3 + a5 + a1 * a9; // a3 + a5 + a1 * a2 * a4 + a1; 
        return a8 - a7;
    }
    return a1;
}
define i32 @foo(i32 %1, i32 %2, i32 %3, i32 %4, i32 %5){
  entry:
    %9 = mul i32 %1, %2
    %10 = mul i32 %9, %4
    %11 = icmp sgt i32 %3, %10
    br i32 %11, label %B11, label %B22
  B11:
    ret i32 %1
  B22:
    ret i32 %1
}
define i32 @main(){
  entry:
    ret i32 3
}

这里的B11B22或许可以合并?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions