diff options
author | Chris Lattner <sabre@nondot.org> | 2010-07-20 21:07:09 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-07-20 21:07:09 +0000 |
commit | f2f387018903c5f0c8ec0c655392454be83f43ed (patch) | |
tree | 50bafd9ad6d2995d1362181680b87fe018ca6027 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | bb610d90535bddf87dc4d9b90c695e9c0add69d3 (diff) | |
download | llvm-f2f387018903c5f0c8ec0c655392454be83f43ed.zip llvm-f2f387018903c5f0c8ec0c655392454be83f43ed.tar.gz llvm-f2f387018903c5f0c8ec0c655392454be83f43ed.tar.bz2 |
Follow the implementation approach suggested by PR6687,
which generates more efficient and more obviously conformant
code. We now test for overflow of the multiply then force
the result to -1 if so. On X86, this generates nice code
like this:
__Z4testl: ## @_Z4testl
## BB#0: ## %entry
subl $12, %esp
movl $4, %eax
mull 16(%esp)
testl %edx, %edx
movl $-1, %ecx
cmovel %eax, %ecx
movl %ecx, (%esp)
call __Znam
addl $12, %esp
ret
llvm-svn: 108927
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions