forked from OSchip/llvm-project
parent
66a26044f8
commit
45e5032b1d
|
@ -524,3 +524,24 @@ Investigate lowering of sparse switch statements into perfect hash tables:
|
||||||
http://burtleburtle.net/bob/hash/perfect.html
|
http://burtleburtle.net/bob/hash/perfect.html
|
||||||
|
|
||||||
//===---------------------------------------------------------------------===//
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
We should turn things like "load+fabs+store" and "load+fneg+store" into the
|
||||||
|
corresponding integer operations. On a yonah, this loop:
|
||||||
|
|
||||||
|
double a[256];
|
||||||
|
for (b = 0; b < 10000000; b++)
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
a[i] = -a[i];
|
||||||
|
|
||||||
|
is twice as slow as this loop:
|
||||||
|
|
||||||
|
long long a[256];
|
||||||
|
for (b = 0; b < 10000000; b++)
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
a[i] ^= (1ULL << 63);
|
||||||
|
|
||||||
|
and I suspect other processors are similar. On X86 in particular this is a
|
||||||
|
big win because doing this with integers allows the use of read/modify/write
|
||||||
|
instructions.
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
Loading…
Reference in New Issue