-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Description
Bugzilla Link | 1270 |
Resolution | FIXED |
Resolved on | Apr 22, 2009 04:35 |
Version | trunk |
OS | All |
Depends On | llvm/llvm-bugzilla-archive#1462 |
Reporter | LLVM Bugzilla Contributor |
CC | @sunfishcode |
Extended Description
Currently, the various targets only handle arbitrary precision integers of
discrete byte sizes (1, 2, 4, 8 bytes). However, the LLVM IR can now handle
integer bit widths from 1 bit to 8 million bits. In cases where the integer bit
size doesn't match the discrete byte size of a "known" integer, the common code
generator will generate an assertion because the integer size doesn't map to
something the machine recognizes.
This problem needs to be fixed because:
a) it prevents codegen for programs with "funny" bit sizes.
b) it prevents bit-size optimizations from working. For example, a bit size
minimization pass might be able to determine that an i32 value really only
needs 14 bits. It would thus fit into an i16 instead of an i32. However the
pass would generate i14 which would cause the common code gen to assert.