Changeset 176088 in webkit


Ignore:
Timestamp:
Nov 13, 2014 1:55:28 PM (9 years ago)
Author:
commit-queue@webkit.org
Message:

Update the "combineModules" script to handel more LLVM metadata.
https://bugs.webkit.org/show_bug.cgi?id=138514

Patch by Juergen Ributzka <juergen@apple.com> on 2014-11-13
Reviewed by Filip Pizlo.

  • ReducedFTL/combineModules.rb:
Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r176078 r176088  
     12014-11-13  Juergen Ributzka  <juergen@apple.com>
     2
     3        Update the "combineModules" script to handel more LLVM metadata.
     4        https://bugs.webkit.org/show_bug.cgi?id=138514
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * ReducedFTL/combineModules.rb:
     9
    1102014-11-13  Myles C. Maxfield  <mmaxfield@apple.com>
    211
  • trunk/Tools/ReducedFTL/combineModules.rb

    r153289 r176088  
    6161
    6262class MetaData
    63     attr_reader :index, :name, :parent
    64    
    65     def initialize(index, name, parent)
     63    attr_reader :index, :name, :parent, :val
     64
     65    def initialize(index, name, parent, val)
    6666        @index = index
    6767        @name = name
    6868        @parent = parent
     69        @val = val
    6970    end
    7071end
     
    121122            name = $2
    122123            unless $metaData[name]
    123                 $metaData[name] = MetaData.new($metaData.size, name, nil)
     124                $metaData[name] = MetaData.new($metaData.size, name, nil, nil)
    124125            end
    125126            metaDataMap[index] = $metaData[$2].index
    126127        elsif line =~ /!([0-9]+) = metadata !{metadata !\"([a-zA-Z0-9_]+)\", metadata !([0-9]+)/
    127             metaData = MetaData.new($1.to_i, $2, $3.to_i)
     128            metaData = MetaData.new($1.to_i, $2, $3.to_i, nil)
    128129            unresolvedMetaData << metaData
     130        elsif line =~ /!([0-9]+) = metadata !{metadata !\"branch_weights\"/
     131            index = $1.to_i
     132            arr1 = line.split(',');
     133            arr1.shift
     134            arr2 = Array.new
     135            name = "branch_weights"
     136            arr1.each { |a|
     137              a =~ /i32 ([0-9]+)/
     138              name.concat($1)
     139              arr2.push($1)
     140            }
     141            unless $metaData[name]
     142                $metaData[name] = MetaData.new($metaData.size, "branch_weights", nil, arr2)
     143            end
     144            metaDataMap[index] = $metaData[name].index
     145        elsif line =~ /!([0-9]+) = metadata !{i32 ([-+0-9]+), i32 ([-+0-9]+)}/
     146            index = $1.to_i
     147            name = "#$2#$3"
     148            unless $metaData[name]
     149                $metaData[name] = MetaData.new($metaData.size, nil, nil, [$2, $3])
     150            end
     151            metaDataMap[index] = $metaData[name].index
    129152        elsif line =~ /attributes #([0-9]+) = /
    130153            attributeNumber = $1.to_i
     
    151174            elsif metaDataMap[metaData.parent]
    152175                metaDataMap[metaData.index] = $metaData.size
    153                 $metaData[metaData.name] = MetaData.new($metaData.size, metaData.name, metaDataMap[metaData.parent])
     176                $metaData[metaData.name] = MetaData.new($metaData.size, metaData.name, metaDataMap[metaData.parent], nil)
    154177                unresolvedMetaData[index] = unresolvedMetaData[-1]
    155178                unresolvedMetaData.pop
     
    161184   
    162185    # Output the body with all of the things remapped.
    163     puts "define i64 @jsBody_#{$count += 1}(i64) {"
     186    puts "define i64 @jsBody_#{$count += 1}() {"
    164187    body.each {
    165188        | thing |
     
    203226$metaData.each_value {
    204227    | metaData |
    205     print "!#{metaData.index} = metadata !{metadata !\"#{metaData.name}\""
     228    print "!#{metaData.index} = metadata !{"
     229    if metaData.name
     230        print "metadata !\"#{metaData.name}\""
     231    end
    206232    if metaData.parent
    207233        print ", metadata !#{metaData.parent}"
    208234    end
     235    if (metaData.val)
     236        index = 0
     237        if metaData.name
     238          index = 1
     239        end
     240        metaData.val.each { |a|
     241            if (index == 0)
     242                print "i32 #{a}"
     243            else
     244                print ", i32 #{a}"
     245            end
     246            index += 1
     247        }
     248    end
    209249    puts "}"
    210250}
Note: See TracChangeset for help on using the changeset viewer.