1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Go to file
Chandler Carruth 517e7a4d9e Replace the ad-hoc hashing in GVN with the new hashing infrastructure.
This implicitly fixes a nasty bug in the GVN hashing (that thankfully
could only manifest as a performance bug): actually include the opcode
in the hash. The old code started the hash off with the opcode, but then
overwrote it with the type pointer.

Since this is likely to be pretty hot (GVN being already pretty
expensive) I've included a micro-optimization to just not bother with
the varargs hashing if they aren't present. I can't measure any change
in GVN performance due to this, even with a big test case like Duncan's
sqlite one. Everything I see is in the noise floor. That said, this
closes a loop hole for a potential scaling problem due to collisions if
the opcode were the differentiating aspect of the expression.

llvm-svn: 152025
2012-03-05 11:29:54 +00:00
autoconf autoconf: Set LLVM_CONFIGTIME to a stable value when using --disable-timestamps. 2012-03-02 16:24:21 +00:00
bindings ocaml bindings: landing pad is now the last opcode. 2012-02-07 18:58:19 +00:00
cmake Minimal changes for LLVM to compile under VS11. 2012-03-01 22:42:52 +00:00
docs llvm/docs/GarbageCollection.html: Prune utf8 BOM. 2012-03-03 04:32:33 +00:00
examples Switch to a more idiomatic way of silencing unused variable warnings in 2012-02-20 00:02:49 +00:00
include Switch to a C-style cast here to silence a brain-dead MSVC warning. It 2012-03-05 09:56:12 +00:00
lib Replace the ad-hoc hashing in GVN with the new hashing infrastructure. 2012-03-05 11:29:54 +00:00
projects Enable -Wcovered-switch-default again, but add -Werror to the checks to make 2012-02-28 23:32:06 +00:00
runtime Fixing a warning in MSVC (this is also a test commit) 2012-02-05 19:43:39 +00:00
test Make aliases for shld and shrd match gas. PR12173. 2012-03-05 04:31:54 +00:00
tools Fix comments for llvm-readobj, remove extraneous headers 2012-03-02 23:43:51 +00:00
unittests Add generic support for hashing StringRef objects using the new hashing library. 2012-03-04 10:55:27 +00:00
utils Shrink and reorder fields in MCRegisterClass to reduce size of static data. 2012-03-05 08:33:33 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt add LLVM_VERSION_MAJOR and _MINOR defines 2012-02-13 18:48:10 +00:00
configure autoconf: Set LLVM_CONFIGTIME to a stable value when using --disable-timestamps. 2012-03-02 16:24:21 +00:00
CREDITS.TXT Add myself to the credits file 2012-02-29 16:43:11 +00:00
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Makefile: add missing files to FilesToConfig 2012-01-17 02:56:49 +00:00
Makefile.common
Makefile.config.in Enable -Wcovered-switch-default again, but add -Werror to the checks to make 2012-02-28 23:32:06 +00:00
Makefile.rules Enable -Wcovered-switch-default again, but add -Werror to the checks to make 2012-02-28 23:32:06 +00:00
README.txt test commit 2012-02-07 08:18:05 +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.