Patents by Inventor Xiaofeng Guo

Xiaofeng Guo 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).

  • Publication number: 20090089765
    Abstract: Critical sections in a programming code may be ordered based at least in part on code motions. A flow graph of the code including the critical section may be generated. Two initiative motions may be performed based on the flow graph to identify possible positions of critical codes in the flow graph. Dependence relationship of critical sections may be determined based on the positions of critical sections. Using the dependence relationship information, the order of critical sections may be determined. The determined order of critical sections may be further used by a compiler to perform optimizations for the code.
    Type: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li
  • Publication number: 20090049433
    Abstract: A method of compiling code includes ordering instructions that protect and release critical sections in the code to improve parallel execution of the code according to an intrinsic order of the critical sections. According to one embodiment, the intrinsic order of the critical sections in the code is determined from data dependence and control dependence of instructions in the critical sections, and additional dependencies are generated to enforce the intrinsic order of the critical sections. Other embodiments are described and claimed.
    Type: Application
    Filed: December 24, 2005
    Publication date: February 19, 2009
    Inventors: Long Li, Jinquan Dai, Xiaofeng Guo
  • Publication number: 20090043991
    Abstract: A computer implemented method for scheduling multithreaded programming instructions based on the dependency graph wherein the dependency graph organizes the programming instruction logically based on blocks, nodes, and super blocks and wherein the programming instructions could be executed outside of a critical section may be executed outside of the critical section by inserting dependency relationship in the dependency graph.
    Type: Application
    Filed: January 26, 2006
    Publication date: February 12, 2009
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li
  • Publication number: 20080244512
    Abstract: Instructions that have no dependence constraint between them and other instructions in a loop of a critical section may be moved out of the critical section so that the size of the critical section may be reduced. A flow graph of a program including the critical section may be generated, which includes loops. The flow graph may be transformed based on which any unnecessary instructions in loops may be moved out of the critical section. Subsequently, the original flow graph of the critical section may be recovered from the transformed flow graph.
    Type: Application
    Filed: March 30, 2007
    Publication date: October 2, 2008
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li
  • Publication number: 20080163181
    Abstract: Critical sections used for multiple threads in a parallel program to access shared resource may be selected to merge with each other to reduce the number of signals/tokens used to create critical sections. Critical section merge may be based on a summarized dependence graph which is obtained from an instruction level dependence graph constructed based on a result of critical section minimization.
    Type: Application
    Filed: December 29, 2006
    Publication date: July 3, 2008
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li
  • Publication number: 20080040711
    Abstract: Methods and apparatus to optimize computer instructions are disclosed. An example method includes receiving a set of computer instructions, determining a first location of a first computer instruction that indicates the end of a critical section in the set of computer instructions, and modifying the execution order of the set of computer instructions to cause the first computer instruction to be executed earlier than the first location. In an example implementation, the disclosed methods and apparatus may be used to optimize the performance of computer instructions executing on multi-processing computer systems.
    Type: Application
    Filed: October 2, 2006
    Publication date: February 14, 2008
    Inventors: Xiaofeng Guo, Jinquan Dai, Long Li