Skip to content
  • Julien Lerouge's avatar
    Currently __builtin_annotation() only annotates an i32. · 4a5b4443
    Julien Lerouge authored
            i32 __builtin_annotation(i32, string);
    
    Applying it to i64 (e.g., long long) generates the following IR.
    
            trunc i64 {{.*}} to i32
            call i32 @llvm.annotation.i32
            zext i32 {{.*}} to i64
    
    The redundant truncation and extension make the result difficult to use.
    
    This patch makes __builtin_annotation() generic.
    
            type __builtin_annotation(type, string);
    
    For the i64 example, it simplifies the generated IR to:
    
            call i64 @llvm.annotation.i64
    
    Patch by Xi Wang!
    
    llvm-svn: 155764
    4a5b4443
Loading