Patents by Inventor Vatsa Santhanam

Vatsa Santhanam has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7530061
    Abstract: A software mechanism for enabling a programmer to embed selected machine instructions into program source code in a convenient fashion, and optionally restricting the re-ordering of such instructions by the compiler without making any significant modifications to the compiler processing. Using a table-driven approach, the mechanism parses the embedded machine instruction constructs and verifies syntax and semantic correctness. The mechanism then translates the constructs into low-level compiler internal representations that may be integrated into other compiler code with minimal compiler changes. When also supported by a robust underlying inter-module optimization framework, library routines containing embedded machine instructions according to the present invention can be inlined into applications. When those applications invoke such library routines, the present invention enables the routines to be optimized more effectively, thereby improving run-time application performance.
    Type: Grant
    Filed: March 20, 2003
    Date of Patent: May 5, 2009
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Vatsa Santhanam, David Gross, John Kwan
  • Patent number: 6898787
    Abstract: A ? function provides a mechanism for static single assignment in the presence of predicated code. Guards placed on each source operand of the ? function indicate the condition under which the corresponding source operand is live and provide correct materialization of the ? functions after code reordering. For control functions ?c representing a confluence of live reaching definitions at a join point in the control flow graph, the guards indicate the basic block which is the source of the edge associated with the source operand. The ?c operands are paired with the source basic block of the incoming edge(s) along which they are live. The operands are also ordered according to a topological ordering of their associated block. This ordering is maintained through subsequent code transformations. In the topological ordering, the source of the edge from which the definition was passed is defined.
    Type: Grant
    Filed: March 22, 2001
    Date of Patent: May 24, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Carol Linda Thompson, Vatsa Santhanam, Dz-Ching Ju, Vasanth Bala
  • Patent number: 6748587
    Abstract: A software mechanism for enabling a programmer to embed selected machine instructions into program source code in a convenient fashion, and optionally restricting the re-ordering of such instructions by the compiler without making any significant modifications to the compiler processing. Using a table-driven approach, the mechanism parses the embedded machine instruction constructs and verifies syntax and semantic correctness. The mechanism then translates the constructs into low-level compiler internal representations that may be integrated into other compiler code with minimal compiler changes. When also supported by a robust underlying inter-module optimization framework, library routines containing embedded machine instructions according to the present invention can be inlined into applications. When those applications invoke such library routines, the present invention enables the routines to be optimized more effectively, thereby improving run-time application performance.
    Type: Grant
    Filed: January 2, 1998
    Date of Patent: June 8, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Vatsa Santhanam, David Gross, John Kwan
  • Publication number: 20040015919
    Abstract: A &PHgr; function provides a mechanism for static single assignment in the presence of predicated code. Guards placed on each source operand of the &PHgr; function indicate the condition under which the corresponding source operand is live and provide correct materialization of the &PHgr; functions after code reordering. For control functions &PHgr;c representing a confluence of live reaching definitions at a join point in the control flow graph, the guards indicate the basic block which is the source of the edge associated with the source operand. The &PHgr;c operands are paired with the source basic block of the incoming edge(s) along which they are live. The operands are also ordered according to a topological ordering of their associated block. This ordering is maintained through subsequent code transformations. In the topological ordering, the source of the edge from which the definition was passed is defined.
    Type: Application
    Filed: March 22, 2001
    Publication date: January 22, 2004
    Inventors: Carol Linda Thompson, Vatsa Santhanam, Dz-Ching Ju, Vasanth Bala
  • Patent number: 6634021
    Abstract: A regime of keywords modifying a volatile type-qualifier for use in source code accessing volatile objects via, for example, pointers to volatile memory locations. Each keyword permits corresponding selected optimizations by a compiler even though the volatile type-qualifier is also declared. Users select and combine keywords so as to relax corresponding optimization constraints otherwise ordained by use of the volatile type-qualifier.
    Type: Grant
    Filed: April 16, 2001
    Date of Patent: October 14, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Vatsa Santhanam
  • Publication number: 20030167458
    Abstract: A software mechanism for enabling a programmer to embed selected machine instructions into program source code in a convenient fashion, and optionally restricting the re-ordering of such instructions by the compiler without making any significant modifications to the compiler processing. Using a table-driven approach, the mechanism parses the embedded machine instruction constructs and verifies syntax and semantic correctness. The mechanism then translates the constructs into low-level compiler internal representations that may be integrated into other compiler code with minimal compiler changes. When also supported by a robust underlying inter-module optimization framework, library routines containing embedded machine instructions according to the present invention can be inlined into applications. When those applications invoke such library routines, the present invention enables the routines to be optimized more effectively, thereby improving run-time application performance.
    Type: Application
    Filed: March 20, 2003
    Publication date: September 4, 2003
    Inventors: Vatsa Santhanam, David Gross, John Kwan
  • Patent number: 6286135
    Abstract: A compiler optimization algorithm that deals with aggressive strength reduction of integer machine instructions found in loops. The algorithm permits the strength reduction of such machine instructions whose execution may be guarded by predicate values. In addition, the algorithm allows the strength reduction of address calculations consumed by memory reference instructions accessing data in a segmented virtual address space. The algorithm also permits aggressive SSA-based strength reduction of non-address integer computations found in loops that are linear functions of loop induction variables. The algorithm incorporates profitability considerations by reducing the cost of updating strength-reduction temporaries and ensures that the strength-reduction transformation results in an overall reduction of the path-lengths within loop bodies, without creating excessive register pressure.
    Type: Grant
    Filed: March 26, 1997
    Date of Patent: September 4, 2001
    Assignee: Hewlett-Packard Company
    Inventor: Vatsa Santhanam
  • Publication number: 20010014967
    Abstract: A regime of keywords modifying a volatile type-qualifier for use in source code accessing volatile objects via, for example, pointers to volatile memory locations. Each keyword permits corresponding selected optimizations by a compiler even though the volatile type-qualifier is also declared. Users select and combine keywords so as to relax corresponding optimization constraints otherwise ordained by use of the volatile type-qualifier.
    Type: Application
    Filed: April 16, 2001
    Publication date: August 16, 2001
    Inventor: Vatsa Santhanam
  • Patent number: 6260191
    Abstract: A regime of keywords modifying a volatile type-qualifier for use in source code accessing volatile objects via, for example, pointers to volatile memory locations. Each keyword permits corresponding selected optimizations by a compiler even though the volatile type-qualifier is also declared. Users select and combine keywords so as to relax corresponding optimization constraints otherwise ordained by use of the volatile type-qualifier.
    Type: Grant
    Filed: April 7, 1997
    Date of Patent: July 10, 2001
    Assignee: Hewlett-Packard Company
    Inventor: Vatsa Santhanam
  • Patent number: 6247174
    Abstract: A software mechanism for enabling a programmer to embed selected machine instructions into program source code in a convenient fashion, and optionally restricting the re-ordering of such instructions by the compiler without making any significant modifications to the compiler processing. Using a table-driven approach, the mechanism parses the embedded machine instruction constructs and verifies syntax and semantic correctness. The mechanism then translates the constructs into low-level compiler internal representations that may be integrated into other compiler code with minimal compiler changes. When also supported by a robust underlying inter-module optimization framework, library routines containing embedded machine instructions according to the present invention can be inlined into applications. When those applications invoke such library routines, the present invention enables the routines to be optimized more effectively, thereby improving run-time application performance.
    Type: Grant
    Filed: January 2, 1998
    Date of Patent: June 12, 2001
    Assignee: Hewlett-Packard Company
    Inventors: Vatsa Santhanam, David Gross, John Kwan
  • Patent number: 6182284
    Abstract: A method and system for detecting and eliminating interferences between resources in SSA-form &phgr;-instructions so that an optimizing compiler can translate optimized SSA-form code back to non-SSA-form code. The method traverses the control flow graph associated with an SSA-form program or routine in order to analyze each &phgr;-instruction within the SSA-form program or routine. All possible pairs of resources associated with each &phgr;-instruction are analyzed for interference. Once all interferences have been detected, the method inserts copy instructions into the SSA-form intermediate-level code program or routine in order to eliminate the interferences.
    Type: Grant
    Filed: September 30, 1998
    Date of Patent: January 30, 2001
    Assignee: Hewlett-Packard Company
    Inventors: Vugranam C. Sreedhar, Dz-ching Ju, David Mitford Gillies, Vatsa Santhanam
  • Patent number: 6151705
    Abstract: The present invention is a compiler optimization algorithm that reduces address computation overhead for architectures that support an auto-increment addressing mode for memory access instructions. The compiler algorithm identifies opportunities for auto-increment synthesis in a low level intermediate representation. Candidate loads and stores are transformed to use a base+displacement addressing mode (even if a base+displacement addressing mode is not supported in the target architecture) prior to instruction scheduling. After instruction scheduling, the pseudo (base+displacement) instructions are transformed back into memory operations that increment their base register operands to set up effective memory addresses.
    Type: Grant
    Filed: October 30, 1997
    Date of Patent: November 21, 2000
    Assignee: Hewlett-Packard Company
    Inventor: Vatsa Santhanam
  • Patent number: 5704053
    Abstract: A compiler that facilitates efficient insertion of explicit data prefetch instructions into loop structures within applications uses simple address expression analysis to determine data prefetching requirements. Analysis and explicit data cache prefetch instruction insertion are performed by the compiler in a machine-instruction level optimizer to provide access to more accurate expected loop iteration latency information. Such prefetch instruction insertion strategy tolerates worst-case alignment of user data structures relative to data cache lines. Execution profiles from previous runs of an application are exploited in the insertion of prefetch instructions into loops with internal control flow. Cache line reuse patterns across loop iterations are recognized to eliminate unnecessary prefetch instructions. The prefetch insertion algorithm is integrated with other low-level optimization phases, such as loop unrolling, register reassociation, and instruction scheduling.
    Type: Grant
    Filed: May 18, 1995
    Date of Patent: December 30, 1997
    Assignee: Hewlett-Packard Company
    Inventor: Vatsa Santhanam
  • Patent number: 5555417
    Abstract: Optimization techniques are implemented by means of a program analyzer used in connection with a program compiler to optimize usage of limited register resources in a computer processor. The first optimization technique, called interprocedural global variable promotion allows the global variables of a program to be accessed in common registers across a plurality of procedures. Moreover, a single common register can be used for different global variables in distinct regions of a program call graph. This is realized by identifying subgraphs, of the program call graph, called webs, where the variable is used. The second optimization technique, called spill code motion, involves the identification of regions of the call graph, called clusters, that facilitate the movement of spill instructions to procedures which are executed relatively less often. This decreases the overhead of register saves and restores which must be executed for procedure calls.
    Type: Grant
    Filed: January 23, 1995
    Date of Patent: September 10, 1996
    Assignee: Hewlett-Packard Company
    Inventors: Daryl Odnert, Vatsa Santhanam
  • Patent number: 5428793
    Abstract: Optimization techniques are implemented by means of a program analyzer used in connection with a program compiler to optimize usage of limited register resources in a computer processor. The first optimization technique, called interprocedural global variable promotion allows the global variables of a program to be accessed in common registers across a plurality of procedures. Moreover, a single common register can be used for different global variables in distinct regions of a program call graph. This is realized by identifying subgraphs, of the program call graph, called webs, where the variable is used. The second optimization technique, called spill code motion, involves the identification of regions of the call graph, called clusters, that facilitate the movement of spill instructions to procedures which are executed relatively less often. This decreases the overhead of register saves and restores which must be executed for procedure calls.
    Type: Grant
    Filed: November 13, 1989
    Date of Patent: June 27, 1995
    Assignee: Hewlett-Packard Company
    Inventors: Daryl Odnert, Vatsa Santhanam
  • Patent number: 5276881
    Abstract: A computer software compiler system and method for distributing a machine independent computer program, created on a native computer platform, to heterogeneous target computer platforms. The system comprises a producer which receives the machine independent computer program as input and which generates compiler intermediate representation. The system operates in a machine independent manner according to an HPcode-Plus compiler intermediate language. Thus, the compiler intermediate representation is machine independent and represents an architecture neutral distribution format (ANDF). The compiler intermediate representation, being architecture neutral, can be distributed to heterogeneous target computer platforms. At the heterogeneous target computer platforms, the compiler intermediate representation can be translated in a machine dependent manner into object code representations such that the object code representations are architecture dependent, or machine dependent, on the target computer platforms.
    Type: Grant
    Filed: June 25, 1990
    Date of Patent: January 4, 1994
    Assignee: Hewlett-Packard Company
    Inventors: Paul Chan, Manoj Dadoo, Karl Pettis, Vatsa Santhanam