llvm-project/llvm/test
Chandler Carruth f5689f8304 Disable transforms that introduce calls to exp10*() on Linux due to
widespread glibc bugs.

The glibc implementation of exp10 has a very serious precision bug in
version 2.15 (and older versions). This is still very widely used (the
current Ubuntu LTS for example uses it) and so it isn't reasonable to
make transforms that produce these functions. This fixes many
miscompiles introduced when we started transforming pow(10.0, ...) into
exp10, and it may have fixed other latent miscompiles where exp10
provided sufficient precision but exp10f did not.

This is all really horrible. The primary bug has been fixed for over
a year and glibc 2.18 works correctly for the test cases I have, but it
will be 2017 before the LTS using 2.15 is no longer supported by Ubuntu
(and thus reasonable for folks to be relying on). =[ We're either going
to need to live without these optimizations, or find a way to switch
behavior more dynamically than using simply the fact that the OS is
"Linux".

To make matters worse, there appears to be significant testing and
fixing of numerous other bugs in the exp10 family of functions right now
in glibc. While those haven't been causing problems I've seen in the
wild, it gives me concerns that we may need to wait until an even later
release of glibc before we can reliably transform code into exp10.

llvm-svn: 198093
2013-12-28 02:40:19 +00:00
..
Analysis Use correct size for address space in BasicAA. 2013-11-16 00:36:43 +00:00
Assembler Debug Info: update testing cases to specify the debug info version number. 2013-11-23 01:16:29 +00:00
Bindings Update the ML test to expect the new string format of getStringRepresentation. 2013-12-19 23:38:09 +00:00
Bitcode Ensure bitcode encoding of calling conventions stays stable. Patch by Boaz Ouriel. 2013-12-22 07:51:53 +00:00
BugPoint Debug Info: update testing cases to specify the debug info version number. 2013-11-23 01:16:29 +00:00
CodeGen Teach DAGCombiner how to fold a SIGN_EXTEND_INREG of a BUILD_VECTOR of 2013-12-27 20:20:28 +00:00
DebugInfo llvm-symbolizer: add --obj flag to specify a single object file that should be symbolized. 2013-12-24 19:33:22 +00:00
ExecutionEngine Remove empty MCJIT/load-object-a.ll since r196641. 2013-12-07 06:17:10 +00:00
Feature Debug Info: update testing cases to specify the debug info version number. 2013-11-23 01:16:29 +00:00
FileCheck FileCheck: fix a bug with multiple --check-prefix options. Similar to r194565 2013-11-20 13:25:05 +00:00
Instrumentation [ASan] Fix the tests broken by r198018 to check for private linkage of ASan-generated globals. 2013-12-25 17:06:04 +00:00
Integer [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
JitListener Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
LTO Resubmit r196544: Apply transformation on OS X 10.9+ and iOS 7.0+: pow(10, x) ―> __exp10(x) 2013-12-12 01:55:04 +00:00
Linker Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
MC Recognize armv7a and friends as aliases for armv7-a etc. for the purpose 2013-12-26 11:50:28 +00:00
Object Correct word hyphenations 2013-12-05 05:44:44 +00:00
Other Removed llvm-cov.test from Other folder. 2013-12-12 20:29:54 +00:00
TableGen FileCheckize r197869 2013-12-22 03:43:58 +00:00
Transforms Disable transforms that introduce calls to exp10*() on Linux due to 2013-12-28 02:40:19 +00:00
Unit [tests] Update to use lit_config and lit package, as appropriate. 2013-08-09 16:22:05 +00:00
Verifier Begin adding docs and IR-level support for the inalloca attribute 2013-12-19 02:14:12 +00:00
YAMLParser [Support][YAML] Add support for accessing tags and tag handle substitution. 2013-10-18 22:38:04 +00:00
tools Teach the llvm-readobj COFF dumper to dump debug line tables from object files 2013-12-19 11:37:14 +00:00
.clang-format Add .clang-format without column limit to subdirectory tests/. 2013-11-19 04:26:05 +00:00
CMakeLists.txt check-llvm: Ask llvm-config about assertion mode, instead of llc. 2013-12-03 23:22:25 +00:00
Makefile [OCaml] Dynamically link LLVM on --enable-shared builds 2013-11-12 20:55:49 +00:00
Makefile.tests Remove dead code from the makefile build system. 2013-07-25 20:25:31 +00:00
TestRunner.sh
lit.cfg check-llvm: Ask llvm-config about assertion mode, instead of llc. 2013-12-03 23:22:25 +00:00
lit.site.cfg.in Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00