Patents by Inventor Si Yuan Zhang
Si Yuan Zhang 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: 12099823Abstract: A computer-implemented method, system and computer program product for reducing register pressure. Loops of a computer program with a number of live variables that exceeds a threshold number, such as the number of available registers with capacity to store data, are identified. Such identified loops may be the to be subject to high register pressure. Upon identifying such loops in the computer program, chains within each identified loop are identified, where each chain includes load and store instructions from the same induction address and where the variable offsets of the load and store instructions are loop invariants. The address expressions for the load and store instructions in the identified chains may then be modified or changed to reuse common variable offsets using an analysis and transformation process. By reusing common variable offsets, there are less variable offsets that need to be stored in the registers thereby mitigating register pressure.Type: GrantFiled: January 16, 2023Date of Patent: September 24, 2024Assignee: International Business Machines CorporationInventors: Zheng Chen, Ke Wen Lin, Si Yuan Zhang
-
Publication number: 20240241704Abstract: A computer-implemented method, system and computer program product for reducing register pressure. Loops of a computer program with a number of live variables that exceeds a threshold number, such as the number of available registers with capacity to store data, are identified. Such identified loops may be the to be subject to high register pressure. Upon identifying such loops in the computer program, chains within each identified loop are identified, where each chain includes load and store instructions from the same induction address and where the variable offsets of the load and store instructions are loop invariants. The address expressions for the load and store instructions in the identified chains may then be modified or changed to reuse common variable offsets using an analysis and transformation process. By reusing common variable offsets, there are less variable offsets that need to be stored in the registers thereby mitigating register pressure.Type: ApplicationFiled: January 16, 2023Publication date: July 18, 2024Inventors: Zheng Chen, Ke Wen Lin, Si Yuan Zhang
-
Publication number: 20230409385Abstract: A method, computer system, and a computer program product for improving debugging speed by rearranging debugging priority functions. In one embodiment, runtime input may be received about a program to be debugged. Feedback information is obtained about at least one similar program previously debugged. The compiling time information and runtime information are analyzed to determine a status of functions including one or more focused functions that will be used frequently and one or more unreachable functions that may never will be executed. A priority list of debugging functions is generated based on the feedback information, the runtime input and a function status. A plurality of debugging information are rearranged and parsed on the priority list prior to said program being debugged based on said debugging information.Type: ApplicationFiled: June 16, 2022Publication date: December 21, 2023Inventors: JIU FU GUO, Ke Wen Lin, Zheng Chen, Si Yuan Zhang
-
Publication number: 20230382261Abstract: A system or method for vehicle-side control of a multi-pile charging session, the system comprising: (a) a plurality of charging piles (10A), each charging pile (10A) including a supply equipment communication controller (10B); and (b) a vehicle electrical system for an electric vehicle with a master battery control unit (18) in data communication with a plurality of battery control units (BCU0, BCU1, BCU2). The master battery control unit (18) is configured to coordinate two or more independent charging sessions through the battery control units (BCU0, BCU1, BCU2) during each multi-pile charging session. Each independent charging session is managed with an independent protocol message exchange through a BCU-to-SECC communication pathway (22) established by power line communication.Type: ApplicationFiled: September 27, 2021Publication date: November 30, 2023Applicant: MINE MOBILITY RESEARCH CO., LTD.Inventors: Somphote AHUNAI, Wen WU PAN, Gang LIU, Xiao Meng DENG, Hang Hang CHENG, Jian Hua LI, Xian Kai LUO, SI Yuan ZHANG
-
Patent number: 10915305Abstract: A method for controlling a compile a software application. The method includes at least one computer processor generating, from source code corresponding to a software application, a plurality of pre-optimization intermediate representations (IRs) of functions associated with the software application. The method further includes generating a plurality of post-optimization IRs of the functions associated with the software application by executing one or more optimization routines on the plurality of pre-optimization IRs of functions. The method further includes determining a set of IRs of functions, from the plurality of generated pre-optimization IRs of the functions associated with the software application and the generated plurality of post-optimization IRs of the functions associated with the software application. The method further includes converting a determined set of IRs of functions to an executable version of the software application.Type: GrantFiled: March 28, 2019Date of Patent: February 9, 2021Assignee: International Business Machines CorporationInventors: Yuheng Zhang, Jiu Fu Guo, Kang Zhang, Si Yuan Zhang
-
Publication number: 20200310768Abstract: A method for controlling a compile a software application. The method includes at least one computer processor generating, from source code corresponding to a software application, a plurality of pre-optimization intermediate representations (IRs) of functions associated with the software application. The method further includes generating a plurality of post-optimization IRs of the functions associated with the software application by executing one or more optimization routines on the plurality of pre-optimization IRs of functions. The method further includes determining a set of IRs of functions, from the plurality of generated pre-optimization IRs of the functions associated with the software application and the generated plurality of post-optimization IRs of the functions associated with the software application. The method further includes converting a determined set of IRs of functions to an executable version of the software application.Type: ApplicationFiled: March 28, 2019Publication date: October 1, 2020Inventors: Yuheng Zhang, Jiu Fu Guo, Kang Zhang, Si Yuan Zhang
-
Patent number: 10289391Abstract: A method, apparatus, and computer program product for optimizing software are provided. The software includes a plurality of modules which include at least one controllable module, the method comprises: determining a shared symbol defined by the at least one controllable module, the shared symbol being a symbol used by two or more modules of the software; generating a symbol use file indicating the shared symbol defined by the at least one controllable module; and rebuilding the software based on the symbol use file, so that a symbol table in a controllable module of the rebuilt software only contains the shared symbol indicated in the symbol use file. A number of symbols in the symbol table can be reduced accurately and effectively, thereby time needed for loading the symbol table can be reduced and software execution efficiency can be improved.Type: GrantFiled: January 4, 2016Date of Patent: May 14, 2019Assignee: International Business Machines CorporationInventors: Huai Yun Ban, JiuFu Guo, Jinsong Ji, Si Yuan Zhang
-
Patent number: 9740430Abstract: Optimizing a parallel build of an application includes, in parallel execution of commands, recording command sequence numbers and access information of the commands and detecting an execution conflict based on the command sequence numbers and the access information of the commands using a processor. Commands involved in the execution conflict are re-executed serially.Type: GrantFiled: September 17, 2013Date of Patent: August 22, 2017Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Jin Song Ji, Jian Jiang, Si Yuan Zhang, Hong Wei Zhu
-
Patent number: 9734039Abstract: The present disclosure relates to a stack overflow protection device and a stack protection method. According to the present disclosure, a stack overflow protection device is provided, which includes a dividing unit configured to divide at least one function in the input codes into a code region with a string operation and a code region without a string operation. The device also includes a stack protection unit configured to set up stack protection in the code region with a string operation. The present disclosure further provides a stack protection method.Type: GrantFiled: May 20, 2015Date of Patent: August 15, 2017Assignee: International Business Machines CorporationInventors: Xiao Feng Guan, Jin Song Ji, Jian Jiang, Si Yuan Zhang
-
Patent number: 9459988Abstract: An optimized version of a binary and a non-optimized debuggable version of a binary for each compiling unit in the source code program are generated. The optimized versions of binaries of all compiling units are loaded into memory for debugging, which is monitored. In response to determining that a first compiling unit in the source code program is to be debugged, the non-optimized debuggable version of the binary is loaded into a memory location that was previously used by the optimized version of the binary. In response to determining that debugging of a second compiling unit in the source code program is to be cancelled, the optimized version of the binary of the second compiling unit is loaded into a memory location that was previously used by the non-optimized debuggable version of the binary.Type: GrantFiled: March 4, 2014Date of Patent: October 4, 2016Assignee: International Business Machines CorporationInventors: Xiao Feng Guan, Jin Song Ji, Jian Jiang, Si Yuan Zhang
-
Publication number: 20160117156Abstract: A method, apparatus, and computer program product for optimizing software are provided. The software includes a plurality of modules which include at least one controllable module, the method comprises: determining a shared symbol defined by the at least one controllable module, the shared symbol being a symbol used by two or more modules of the software; generating a symbol use file indicating the shared symbol defined by the at least one controllable module; and rebuilding the software based on the symbol use file, so that a symbol table in a controllable module of the rebuilt software only contains the shared symbol indicated in the symbol use file. A number of symbols in the symbol table can be reduced accurately and effectively, thereby time needed for loading the symbol table can be reduced and software execution efficiency can be improved.Type: ApplicationFiled: January 4, 2016Publication date: April 28, 2016Inventors: Huai Yun Ban, JiuFu Guo, Jinsong Ji, Si Yuan Zhang
-
Patent number: 9235391Abstract: A method, apparatus, and computer program product for optimizing software are provided. The software includes a plurality of modules which include at least one controllable module, the method comprises: determining a shared symbol defined by the at least one controllable module, the shared symbol being a symbol used by two or more modules of the software; generating a symbol use file indicating the shared symbol defined by the at least one controllable module; and rebuilding the software based on the symbol use file, so that a symbol table in a controllable module of the rebuilt software only contains the shared symbol indicated in the symbol use file. A number of symbols in the symbol table can be reduced accurately and effectively, thereby time needed for loading the symbol table can be reduced and software execution efficiency can be improved.Type: GrantFiled: March 13, 2015Date of Patent: January 12, 2016Assignee: International Business Machines CorporationInventors: Huai Yun Ban, JiuFu Guo, Jinsong Ji, Si Yuan Zhang
-
Publication number: 20150277875Abstract: A method, apparatus, and computer program product for optimizing software are provided. The software includes a plurality of modules which include at least one controllable module, the method comprises: determining a shared symbol defined by the at least one controllable module, the shared symbol being a symbol used by two or more modules of the software; generating a symbol use file indicating the shared symbol defined by the at least one controllable module; and rebuilding the software based on the symbol use file, so that a symbol table in a controllable module of the rebuilt software only contains the shared symbol indicated in the symbol use file. A number of symbols in the symbol table can be reduced accurately and effectively, thereby time needed for loading the symbol table can be reduced and software execution efficiency can be improved.Type: ApplicationFiled: March 13, 2015Publication date: October 1, 2015Inventors: Huai Yun Ban, JiuFu Guo, Jinsong Ji, Si Yuan Zhang
-
Publication number: 20150254164Abstract: The present disclosure relates to a stack overflow protection device and a stack protection method. According to the present disclosure, a stack overflow protection device is provided, which includes a dividing unit configured to divide at least one function in the input codes into a code region with a string operation and a code region without a string operation. The device also includes a stack protection unit configured to set up stack protection in the code region with a string operation. The present disclosure further provides a stack protection method.Type: ApplicationFiled: May 20, 2015Publication date: September 10, 2015Inventors: Xiao Feng GUAN, Jin Song Ji, Jian Jiang, Si Yuan Zhang
-
Patent number: 9104802Abstract: The present disclosure relates to a stack overflow protection device and a stack protection method. According to the present disclosure, a stack overflow protection device is provided, which includes a dividing unit configured to divide at least one function in the input codes into a code region with a string operation and a code region without a string operation. The device also includes a stack protection unit configured to set up stack protection in the code region with a string operation. The present disclosure further provides a stack protection method.Type: GrantFiled: February 21, 2013Date of Patent: August 11, 2015Assignee: International Business Machines CorporationInventors: Xiao Feng Guan, Jin Song Ji, Jian Jiang, Si Yuan Zhang
-
Patent number: 8959502Abstract: The present disclosure provides a method and system for processing table of content (TOC) access overflow in an application. The method may determine whether there occurs a TOC access overflow within an object file during linking the object file that may be generated from the compiling. If the TOC access overflow occurs within the object file, then the source file corresponding to the object file may be re-compiled so as to generate an object file having no TOC access overflow, and the object file may be re-linked to generate an executable file of the application. The present disclosure may adopt two-pass compiling and a dual-instruction TOC access in a form of two pieces of instructions that may be generated for TOC entries within which TOC overflows generally occur.Type: GrantFiled: June 18, 2012Date of Patent: February 17, 2015Assignee: International Business Machines CorporationInventors: Jin Song Ji, Jian Jiang, Si Yuan Zhang
-
Publication number: 20140289707Abstract: An optimized version of a binary and a non-optimized debuggable version of a binary for each compiling unit in the source code program are generated. The optimized versions of binaries of all compiling units are loaded into memory for debugging, which is monitored. In response to determining that a first compiling unit in the source code program is to be debugged, the non-optimized debuggable version of the binary is loaded into a memory location that was previously used by the optimized version of the binary. In response to determining that debugging of a second compiling unit in the source code program is to be cancelled, the optimized version of the binary of the second compiling unit is loaded into a memory location that was previously used by the non-optimized debuggable version of the binary.Type: ApplicationFiled: March 4, 2014Publication date: September 25, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: XIAO FENG GUAN, JIN SONG JI, JIAN JIANG, SI YUAN ZHANG
-
Publication number: 20140089530Abstract: Optimizing a parallel build of an application includes, in parallel execution of commands, recording command sequence numbers and access information of the commands and detecting an execution conflict based on the command sequence numbers and the access information of the commands using a processor. Commands involved in the execution conflict are re-executed serially.Type: ApplicationFiled: September 17, 2013Publication date: March 27, 2014Applicant: International Business Machines CorporationInventors: Jin Song Ji, Jian Jiang, Si Yuan Zhang, Hong Wei Zhu
-
Publication number: 20130031535Abstract: The present disclosure provides a method and system for processing table of content (TOC) access overflow in an application. The method may determine whether there occurs a TOC access overflow within an object file during linking the object file that may be generated from the compiling. If the TOC access overflow occurs within the object file, then the source file corresponding to the object file may be re-compiled so as to generate an object file having no TOC access overflow, and the object file may be re-linked to generate an executable file of the application. The present disclosure may adopt two-pass compiling and a dual-instruction TOC access in a form of two pieces of instructions that may be generated for TOC entries within which TOC overflows generally occur.Type: ApplicationFiled: June 18, 2012Publication date: January 31, 2013Applicant: International Business Machines CorporationInventors: Jin Song Ji, Jian Jiang, Si Yuan Zhang