OSDN Git Service

[ConstantHoisting][X86] Change the cost model to never hoist constants for types...
authorJuergen Ributzka <juergen@apple.com>
Mon, 19 May 2014 21:00:53 +0000 (21:00 +0000)
committerJuergen Ributzka <juergen@apple.com>
Mon, 19 May 2014 21:00:53 +0000 (21:00 +0000)
commit2f8bca00bb926a61dfdb5c3a76f14813c8cbe701
treea286c8f6a503c9ba12e21e53e9d846e8951ba954
parent8e4a223f7bb3ee0ae6a0888b8e670a6bd4983a0a
[ConstantHoisting][X86] Change the cost model to never hoist constants for types larger than i128.

Currently the X86 backend doesn't support types larger than i128 very well. For
example an i192 multiply will assert in codegen when the 2nd argument is a constant and the constant got hoisted.

This fix changes the cost model to never hoist constants for types larger than
i128. Once the codegen issues have been resolved, the cost model can be updated
to allow also larger types.

This is related to <rdar://problem/16954938>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209162 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86TargetTransformInfo.cpp
test/Transforms/ConstantHoisting/X86/large-immediate.ll