intel compiler for Linux
■ このスレッドは過去ログ倉庫に格納されています
0291login:Penguin
02/09/14 22:04ID:nz4/+CVH-64というオプションをつけて64ビットアドレス用として
コンパイルすると、LP64モデル(つまりIntは32ビット)
ではあるが、配列の添え字計算ではLongとして計算される
ようで、あとはOSの関係なのか40ビットのアドレス空間を
使える。つまり1TBまでの配列がコンパイラに食わせる
ソースのレベルでは取れるのだ。
#
AnsiのCの解説書などを読んでみたが、どうも、たとえばCの配列
の添え字式はIntであるという風に読めるので、そのとおりに
すると、ILP64ではないLP64のメモリモデルだと、
ポインターは64ビットなのに配列の添え字は正負あって32ビット
までになってしまう。ぜひとも、64ビットの添え字式を使える
ようにして欲しいと交渉したい。
#
IA-64用の場合、IntelのCコンパイラにもILP64モデルになるように、つまり
コンパイラオプションで整数が8バイトになるよう指定が可能
となるようにして欲しいと交渉したい。
今のIntelのeccコンパイラには、なぜかLongとPointerが8バイト
になるような指定をするコンパイラオプションがあるとオンライン
マニュアルにはかかれているし、実際おぷしょんを受け付けるの
だが、本来Linuxの上でeccコンパイラは試してみたところ、
最初からLP64であるので、このオプションを指定するまでもなく
そうなっているなど、理解に苦しむものが多い、わけがわからん。
■ このスレッドは過去ログ倉庫に格納されています