发明名称 METHODS AND SYSTEMS TO VECTORIZE SCALAR COMPUTER PROGRAM LOOPS HAVING LOOP-CARRIED DEPENDENCES
摘要 Methods and systems to convert scalar computer program loops having loop carried dependences to vector computer program loops are disclosed. One example method and system generates a first predicate set associated with a first conditionally executed statement. The first predicate set contains a first set of predicates that cause a variable to be defined in a scalar computer program loop at or before the variable is defined by the first conditionally executed statement. The method and system also generates a second predicate set associated with the first conditionally executed statement. The second predicate set contains a second set of predicates that cause the variable to be used in the scalar computer program loop at or before the variable is defined by the first conditionally executed statement. The method and system determines whether the second predicate set is a subset of the first predicate set and, based on the determination, propagates a vector value in an element of a vector of the variable to a subsequent element of the vector.
申请公布号 US2015007154(A1) 申请公布日期 2015.01.01
申请号 US201313994062 申请日期 2013.03.15
申请人 Bharadwaj Jayashankar;Vasudevan Nalini;Hartono Albert;Baghsorkhi Sara S. 发明人 Bharadwaj Jayashankar;Vasudevan Nalini;Hartono Albert;Baghsorkhi Sara S.
分类号 G06F9/45 主分类号 G06F9/45
代理机构 代理人
主权项 1. A system to convert a scalar computer program loop having loop-carried dependences arising from a conditionally defined scalar variable to a vector computer program loop, the system comprising: a predicate set generator to: generate a first predicate set associated with a first scalar computer program instruction, the first predicate set to contain predicates that cause a scalar variable to be defined at or before the first scalar computer program instruction;generate a second predicate set associated with the first scalar computer program instruction, the second predicate set to contain predicates that cause the scalar variable to be used after the first scalar computer program instruction; a propagator to: determine whether the second predicate set is a subset of the first predicate set; andpropagate a value in an element of a vector to a subsequent element of the vector in response to determining that the second predicate set is not a subset of the first predicate set, the vector being formed by converting the scalar variable to a vector variable.
地址 Saratoga CA US