JP6627630B2 - コンパイル方法、コンパイルプログラム及び情報処理装置 - Google Patents
コンパイル方法、コンパイルプログラム及び情報処理装置 Download PDFInfo
- Publication number
- JP6627630B2 JP6627630B2 JP2016081847A JP2016081847A JP6627630B2 JP 6627630 B2 JP6627630 B2 JP 6627630B2 JP 2016081847 A JP2016081847 A JP 2016081847A JP 2016081847 A JP2016081847 A JP 2016081847A JP 6627630 B2 JP6627630 B2 JP 6627630B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- simd
- unit
- scalar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 40
- 230000010365 information processing Effects 0.000 title claims description 17
- 238000013500 data storage Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 25
- 238000005457 optimization Methods 0.000 description 17
- 238000007796 conventional method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定する特定部と、
前記特定部により特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける割付部と、
を有する情報処理装置。
前記割付部は、
前記第1のデータがSIMDデータである場合、前記第1のデータを複数のデータブロックに分割し、
前記特定部により特定された複数の前記第1のSIMDレジスタの各々の空き領域を、前記複数のデータブロックのいずれかに割り付ける、
付記1記載の情報処理装置。
前記割付部は、
前記第1のデータがスカラデータである場合、前記第1のSIMDレジスタにおいて前記スカラデータが格納されている領域の直後の空き領域を、前記第1のデータに割り付ける、
付記1又は2記載の情報処理装置。
プロセッサに、
スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定し、
特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける、
処理を実行させるコンパイルプログラム。
プロセッサが、
スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定し、
特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける、
処理を実行するコンパイル方法。
11 メモリ 12 記憶装置
13 バス 15 コンパイル処理部
16 ソースコード格納部 17 第1データ格納部
18 第2データ格納部 19 オブジェクトコード格納部
101,102 コア 103,104 L1キャッシュ
105 L2キャッシュ 1011,1021 汎用レジスタ
1012,1022 SIMDレジスタ
151 ソースコード解析部 152 最適化部
153 第1レジスタ割付部 154 割付解析部
155 第2レジスタ割付部 156 生成部
1551 第1処理部 1552 第2処理部
Claims (5)
- スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定する特定部と、
前記特定部により特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける割付部と、
を有する情報処理装置。 - 前記割付部は、
前記第1のデータがSIMDデータである場合、前記第1のデータを複数のデータブロックに分割し、
前記特定部により特定された複数の前記第1のSIMDレジスタの各々の空き領域を、前記複数のデータブロックのいずれかに割り付ける、
請求項1記載の情報処理装置。 - 前記割付部は、
前記第1のデータがスカラデータである場合、前記第1のSIMDレジスタにおいて前記スカラデータが格納されている領域の直後の空き領域を、前記第1のデータに割り付ける、
請求項1又は2記載の情報処理装置。 - プロセッサに、
スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定し、
特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける、
処理を実行させるコンパイルプログラム。 - プロセッサが、
スカラデータに割り付けられており、且つ、当該スカラデータの生存区間がいずれのレジスタも割り付けられていない第1のデータの生存区間を含むという条件を満たす第1のSIMD(Single Instruction Multiple Data)レジスタを特定し、
特定された前記第1のSIMDレジスタの空き領域を、前記第1のデータに割り付ける、
処理を実行するコンパイル方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016081847A JP6627630B2 (ja) | 2016-04-15 | 2016-04-15 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
US15/447,540 US10114648B2 (en) | 2016-04-15 | 2017-03-02 | Compile method, non-transitory computer-readable recording medium storing compile program, and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016081847A JP6627630B2 (ja) | 2016-04-15 | 2016-04-15 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017191543A JP2017191543A (ja) | 2017-10-19 |
JP6627630B2 true JP6627630B2 (ja) | 2020-01-08 |
Family
ID=60038808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016081847A Active JP6627630B2 (ja) | 2016-04-15 | 2016-04-15 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10114648B2 (ja) |
JP (1) | JP6627630B2 (ja) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5437045A (en) * | 1992-12-18 | 1995-07-25 | Xerox Corporation | Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit |
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
US5758176A (en) * | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
US5887183A (en) * | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US5890222A (en) * | 1995-01-04 | 1999-03-30 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indirect addressing mode |
US6135650A (en) * | 1995-12-22 | 2000-10-24 | Sun Microsystems, Inc. | Method and system for wrapper routine optimization |
JPH10293691A (ja) | 1997-04-18 | 1998-11-04 | Hitachi Ltd | レジスタ割り付け方法 |
US6839828B2 (en) * | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US7975128B2 (en) * | 2006-01-20 | 2011-07-05 | Panasonic Corporation | Apparatuses and programs for implementing a forwarding function |
US20080005722A1 (en) | 2006-06-28 | 2008-01-03 | Hidenori Matsuzaki | Compiling device, compiling method and recording medium |
US9557917B2 (en) * | 2014-11-10 | 2017-01-31 | International Business Machines Corporation | Conditional stack frame allocation |
-
2016
- 2016-04-15 JP JP2016081847A patent/JP6627630B2/ja active Active
-
2017
- 2017-03-02 US US15/447,540 patent/US10114648B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170300324A1 (en) | 2017-10-19 |
US10114648B2 (en) | 2018-10-30 |
JP2017191543A (ja) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6875557B2 (ja) | サービス・データをブロックチェーン・システムに書き込むための方法およびデバイス | |
KR101360512B1 (ko) | 기록 마스크를 사용하는 simd 아키텍처에 의한 레지스터 할당 | |
JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
JP3901181B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP3901180B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP5689366B2 (ja) | ゾーン10進数形式の変数へのアクセスを有する言語のバイナリコードを最適化する方法、並びにその最適化装置及びコンピュータ・プログラム | |
JP2010009495A (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
US11226798B2 (en) | Information processing device and information processing method | |
JPWO2013105158A1 (ja) | データ依存解析支援装置、データ依存解析支援プログラム、及びデータ依存解析支援方法 | |
JP2006018447A (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JPH04213118A (ja) | プログラム翻訳装置およびプログラム翻訳方法 | |
JP5278538B2 (ja) | コンパイルシステム、コンパイル方法およびコンパイルプログラム | |
JP6627630B2 (ja) | コンパイル方法、コンパイルプログラム及び情報処理装置 | |
US9940267B2 (en) | Compiler global memory access optimization in code regions using most appropriate base pointer registers | |
CN113296788A (zh) | 指令调度方法、装置、设备、存储介质及程序产品 | |
JP2008305337A (ja) | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム | |
JP2018132948A (ja) | 読込プログラム、読込方法および情報処理装置 | |
JP2012103923A (ja) | コンパイラ装置、コンパイル方法及びコンパイラプログラム | |
WO2017204139A1 (ja) | データ処理装置、データ処理方法、およびプログラム記録媒体 | |
JP4293223B2 (ja) | プログラム並列化装置及びその方法並びにプログラム | |
JP7302728B2 (ja) | ループアンローリング処理装置、方法およびプログラム | |
US20200409746A1 (en) | Information processing apparatus and recording medium | |
US20230385040A1 (en) | Splitting vector processing loops with an unknown trip count | |
JP2002215703A (ja) | ハードウェア/ソフトウェア協調設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191023 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20191105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6627630 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |