Skip to content
  1. Jul 18, 2003
  2. Jul 17, 2003
  3. Jul 16, 2003
    • Vikram S. Adve's avatar
      aa694a6f
    • Vikram S. Adve's avatar
      (1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes · d3bf70c0
      Vikram S. Adve authored
          to clone the subgraph reachable from a set of root nodes, into the
          current graph, merging the global nodes into those in the current graph.
      (2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
          globals graph into the current graph in both BU and TD passes.
      (3) Added hash_set<const GlobalValue*> InlinedGlobals: a set of globals to
          track which globals have been inlined into the current graph from
          callers or callees.  In the TD pass, such globals are up-to-date and
          do not need to be rematerialized from the GlobalsGraph.
      (4) Added StripIncompleteBit/KeepIncompleteBit to remove incomplete bit
          when cloning nodes into the globals graph.
      
      llvm-svn: 7190
      d3bf70c0
    • Vikram S. Adve's avatar
      Rematerialize nodes from the globals graph into the current graph · cf01ed5f
      Vikram S. Adve authored
      after all callees are inlined into the current graph.
      
      NOTE: There's also a major bug fix for the BU pass in DataStructure.cpp,
      which ensures that resolvable indirect calls are not moved out to the
      globals graph, so that they are eventually inlined (if possible).
      
      llvm-svn: 7189
      cf01ed5f
    • Vikram S. Adve's avatar
      (1) Rematerialize nodes from the globals graph into the current graph · 03be4a96
      Vikram S. Adve authored
          after all callers are inlined into the current graph.
      (2) Optimize the way a graph is inlined into its callees in the TD phase:
          (a) Use DSGraph::cloneReachableSubgraph to clone only a subgraph at
              each call site, for faster inlining.
          (b) Clone separately for the same callee at different call sites,
              since only the reachable subgraph is being cloned, not the entire
              caller graph.
      
      llvm-svn: 7188
      03be4a96
    • Vikram S. Adve's avatar
      Implement 2 important changes: (1) rematerialization from the globals graph, · dce6694f
      Vikram S. Adve authored
      and (2) faster inlining by cloning only reachable nodes.  In particular:
      (1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
          to clone the subgraph reachable from a set of root nodes, into the
          current graph, merging the global nodes into thos in the current graph.
          The TD pass now uses this for faster inlining, and so does the
          next function.
      (2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
          globals graph into the current graph in both BU and TD passes.
      (3) `I' flags are removed from all nodes in the globals graph, because they
          are difficult to maintain correctly and are not needed anyway.
      (4) Aux. function calls are only removed to the globals graph if they
          will never be resovled.  (This is what fixed gap.)  The immediate
          reason is that if we took these out of a function (and moved them to
          the globals graph) we would need to rematerialize these nodes into the
          function graph for every function in the BU pass.  The longer term
          problem is that we would need to find a way to remove them from the
          globals graph iff they have been resolved on all paths through the
          call graph.
      
      llvm-svn: 7187
      dce6694f
    • Vikram S. Adve's avatar
      Factor out the test for unresolvable external functions into · 6c254f05
      Vikram S. Adve authored
      isUnresolvableFunc() (I thought I needed this externally.
      I don't, but it's still nicer this way.)
      
      llvm-svn: 7186
      6c254f05
    • Misha Brukman's avatar
      Fixed the number translation scheme for the integer condition code registers: it · e32251b5
      Misha Brukman authored
      now works in instructions which require a 2-bit or 3-bit INTcc code.
      
      Incidentally, that means that the representation of INTcc registers is now the
      same in both integer and FP instructions. Thus, code became much simpler and
      cleaner.
      
      llvm-svn: 7185
      e32251b5
    • Misha Brukman's avatar
      The name should really be `simm11' to follow the naming convention, but this has · bc0ecb29
      Misha Brukman authored
      no change in functionality.
      
      llvm-svn: 7184
      bc0ecb29
    • John Criswell's avatar
      Marked some of the phony targets are PHONY. This will hopefully speed · af4d1302
      John Criswell authored
      up builds a little bit since it will prevent GNU make from matching these
      phony targets against implicit rules.
      
      llvm-svn: 7183
      af4d1302
  4. Jul 15, 2003
  5. Jul 14, 2003
  6. Jul 12, 2003
  7. Jul 11, 2003
    • Vikram S. Adve's avatar
      Trace loads and stores as they happen (stores were being · ac83df76
      Vikram S. Adve authored
      remembered in valuesStoredInFunction, but never traced at function return,
      and that's too late to be finding the error anyway).
      Stores trace both the value and the address being stored to,
      but after some experience I think only values should be traced.
      The pointer hash table just fills up far too quickly if every
      store address were traced.
      
      llvm-svn: 7169
      ac83df76
    • Brian Gaeke's avatar
      If we have a constant pointer reference to a function, we were printing · b99d6848
      Brian Gaeke authored
      out the entire llvm disassembly for the function at global constant-output
      time, which caused the assembler to barf in 164.gzip. This fixes that
      particular problem (though 164.gzip has other problems with X86 llc.)
      
      llvm-svn: 7168
      b99d6848
    • Brian Gaeke's avatar
      Fix some serious floating-point bugs (fixes test cases such as Oscar, · 5b04987a
      Brian Gaeke authored
      Fhourstones, McCat-vor, and many others...)
      
      Printer.cpp: Print implicit uses for AddRegFrm instructions.  Break gas
      bug workarounds up into separate stanzas of code for each bug.  Add new
      workarounds for fild and fistp.
      
      X86InstrInfo.def: Add O_ST0 implicit uses for more FP instrs where they
      obviously apply. Also add PrintImplUses flags for FP instrs where they
      are necessary for gas to understand the output.
      
      llvm-svn: 7165
      5b04987a
  8. Jul 10, 2003
Loading