LLVM backend for 6502
Go to file
Jim Grosbach cbf676b3ba float comparison to double 'zero' constant can just be a float 'zero.'
InstCombine was incorrectly considering the conversion of the constant
zero to be unsafe.

We want to transform:
define float @bar(float %x) nounwind readnone optsize ssp {
  %conv = fpext float %x to double
  %cmp = fcmp olt double %conv, 0.000000e+00
  %conv1 = zext i1 %cmp to i32
  %conv2 = sitofp i32 %conv1 to float
  ret float %conv2
}

Into:
define float @bar(float %x) nounwind readnone optsize ssp {
  %cmp = fcmp olt float %x, 0.000000e+00   ; <---- This
  %conv1 = zext i1 %cmp to i32
  %conv2 = sitofp i32 %conv1 to float
  ret float %conv2
}


rdar://10215914


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140869 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-30 18:45:50 +00:00
autoconf We're no longer going to bother supporting platforms that don't 2011-09-23 00:53:10 +00:00
bindings Remove the build_unwind function from the OCaml bindings. 2011-08-10 01:10:17 +00:00
cmake Rename LLVM_MULTITHREADED define and fix build without threads. 2011-09-19 20:43:23 +00:00
docs some 3.0 API notes 2011-09-30 13:07:52 +00:00
examples Changed comments on foreign C++ exceptions (generated with type info 7), 2011-09-28 10:53:56 +00:00
include Tidy up. Formatting. 2011-09-29 21:43:01 +00:00
lib float comparison to double 'zero' constant can just be a float 'zero.' 2011-09-30 18:45:50 +00:00
projects Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
runtime Fix for warnings: ignoring return value of ‘write’, declared with attribute warn_unused_result. 2011-09-22 17:33:24 +00:00
test float comparison to double 'zero' constant can just be a float 'zero.' 2011-09-30 18:45:50 +00:00
tools Simplify. 2011-09-29 17:06:40 +00:00
unittests Fix a bug in compare_numeric(). 2011-09-30 17:03:55 +00:00
utils Precompute a bit vector of register sub-classes. 2011-09-30 00:10:40 +00:00
website
.gitignore Revert change made in .gitignore. 2011-09-24 01:37:58 +00:00
build-for-llvm-top.sh Patch to build llvm with srcdir != objdir from 2009-01-23 08:42:38 +00:00
CMakeLists.txt Added the infrastructute necessary for MIPS JIT support. Patch by Vladimir 2011-07-21 16:28:51 +00:00
configure We're no longer going to bother supporting platforms that don't 2011-09-23 00:53:10 +00:00
CREDITS.TXT Claimed. 2011-09-19 05:34:10 +00:00
LICENSE.TXT Happy new year. 2011-06-12 15:26:54 +00:00
llvm.spec.in
Makefile Remove llvmc and assorted build machinery for it. 2011-09-19 23:22:41 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in Remove the rest of the compiler checking from the top level configure 2011-09-21 00:53:42 +00:00
Makefile.rules More llvmc bits. Spotted by Benjamin on IRC. 2011-09-20 00:42:28 +00:00
ModuleInfo.txt Remove trailing space. This is just an excuse to poke the 2010-10-05 20:32:15 +00:00
README.txt Test commit 2011-09-21 03:34:31 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.