Patent classifications
G06F8/4435
Rendering optimisation by recompiling shader instructions
A rendering optimisation identifies a draw call within a current render (which may be the first draw call in the render or a subsequent draw call in the render) and analyses a last shader in the series of shaders used by the draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location. If this determination is positive, the method further recompiles the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers.
SYSTEMS AND METHODS FOR DETECTING CODE DUPLICATION IN CODEBASES
Systems and methods for detecting code duplication are disclosed. In one embodiment, a method for detecting exact code snippet duplicates may include: (1) representing, by a code duplication detection computer program, each of a plurality of code snippets in a codebase as an abstract syntax trees; (2) featurizing, by the code duplication detection computer program, the abstract syntax trees into corpus feature vectors by converting the abstract syntax tree into vector representations; (3) generating, by the code duplication detection computer program, dense feature vectors from the corpus feature vectors using a dimension reduction technique; (4) identifying, by the code duplication detection computer program, exact duplicate code snippet matches by apply density-based clustering to the dense feature vectors; and (5) tagging, by the code duplication detection computer program, the exact duplicate code snippets.
APPARATUS AND METHOD TO COMPILE A VARIADIC TEMPLATE FUNCTION
An apparatus duplicates a process code of a variadic template function that has a variable number of parameters in a source code, in association with each of actual arguments in an actual-argument list corresponding to a variadic parameter defined by a variadic operator that packs the variable number of parameters of the variadic template function. The apparatus substitutes another parameter in each duplicated process code with a prepared parameter that accepts the actual argument associated with the each duplicated process code. The apparatus firstly inserts, into a recursive call part in a process code of the variadic template function, a first duplicated process code that is associated with an actual argument at a head of the actual-argument list, and repeats inserting, into a recursive call part in the previously inserted duplicated process code, a next duplicated process code associated with a subsequent actual argument.
Application binary rewriting to reduce binary attack surface area
Unused instructions and no longer used instructions in a target application binary are determined. The target application binary is rewritten before and after runtime execution of the target application binary to remove the unused and no longer used instructions to reduce binary attack surface area for the runtime execution of the target application binary. Methods, computer systems, and computer program products are disclosed.
Redundant Instance Variable Initialization Elision
A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with certainty that a particular assignment is definitely not redundant. Additionally, a code analyzer may not be able to determine with certainty whether an instance variable assignment is definitely redundant or definitely not redundant. Additionally, the code analyzer may report a warning or other informative message indicating the redundancy property of the assignment, thus alerting the programming to a (possibly) redundant assignment.
REDUNDANT SYSTEM AND METHOD OF OPERATING A REDUNDANT SYSTEM
A redundant system for processing at least one signal is described wherein the redundant system has N+1 devices include N operational devices and one reserve device. The N operational devices and the reserve device are interconnected with each other. The redundant system includes a system control integrated within one of the devices of the redundant system. The redundant system further includes switches that are associated with the operational devices. In case of a failure of a respective operational device, the system control is configured to cause at least one of the devices to operate the switch associated with the respective operational device having the failure. Further, a method of operating a redundant system for processing at least one signal is described.
SEMANTICALLY SENSITIVE CODE REGION HASH CALCULATION FOR PROGRAMMING LANGUAGES
Herein disclosed is an optimization for a compiler, the optimization configured to assign numeric values, or semantic fingerprints, to portions of code, and to combine these fingerprints to arrive at fingerprints for larger and larger portions of code. The fingerprints can be provided to various consumers such as code redundancy optimization modules and copyright violation and malware/virus identification modules. The fingerprints can also be used to cluster similar code, and then code within each cluster can be merged. Merger can include creating a single merged portion of code including identical portions of code from the original portions of code and control flow and new arguments to account for differences between the original portions of code. The original portions of code can be replaced with wrappers that use new arguments to call to the merged portion of code.
SEMANTICALLY SENSITIVE CODE REGION FINGERPRINT CALCULATION FOR PROGRAMMING LANGUAGES
Herein disclosed is an optimization for a compiler, the optimization configured to assign numeric values, or semantic fingerprints, to portions of code, and to combine these fingerprints to arrive at fingerprints for larger and larger portions of code. The fingerprints can be provided to various consumers such as code redundancy optimization modules and copyright violation and malware/virus identification modules. The fingerprints can also be used to cluster similar code, and then code within each cluster can be merged. Merger can include creating a single merged portion of code including the same portions of code from the original portions of code plus control flow and new arguments to account for differences between the original portions of code. The original portions of code can be replaced with wrappers that use new arguments to call to the merged portion of code.
Method of deadlock detection and synchronization-aware optimizations on asynchronous architectures
A method for improving the performance of applications executed within asynchronous processor architectures. In an embodiment, a method for improving execution time of compiled synchronized source code on an asynchronous processor architecture includes receiving, by a processing system, synchronized source code comprising synchronization instructions to synchronize execution of the synchronized source code on different pipelines of the asynchronous processor architecture. The method also includes analyzing, by the processing system, the synchronized source code to determine whether the synchronized source code includes a broken code condition. The method also includes, after determining, by the processing system, that the synchronized source code does not include a broken code condition, outputting an optimized synchronized source code generated by performing a corrective action on the synchronized source code to correct a synchronization inaccuracy, inconsistency, or inefficiency in the synchronized source code.
Techniques to identify and purge unused code
An apparatus to identify and purge unused code may comprise a processor circuit on a device and a storage component configured to store a codebase including one or more portions of programming code. The apparatus may further comprise a sampling component, a profiling component, and a purge component. The sampling component may sample the codebase and generate one or more leads identifying portions of programming code from the codebase determined to be unused during a sampling period. The profiling component may receive the one or more leads and profile programming code identified therein during a profiling period and to identify portions of programming code determined to be unused during the profiling period. The purge component may receive identification of the portions of programming code determined to be unused during the profiling period and initiate a purging process thereon. Other embodiments are described and claimed.