Skip to content
  • Chris Lattner's avatar
    rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte · 72a35fb9
    Chris Lattner authored
    constant, including globals.  This makes us generate much more "pretty" pattern
    globals as well because it doesn't break it down to an array of bytes all the
    time.
    
    This enables us to handle stores of relocatable globals.  This kicks in about
    48 times in 254.gap, giving us stuff like this:
    
    @.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct
    .TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16
    
    ...
      call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8*
    ), i64 %tmp75) nounwind
    
    llvm-svn: 126044
    72a35fb9
Loading