hanchenye-llvm-project/llvm
Manman Ren ef4e0479ec X86: optimization for -(x != 0)
This patch will optimize -(x != 0) on X86
FROM 
cmpl	$0x01,%edi
sbbl	%eax,%eax
notl	%eax
TO
negl %edi
sbbl %eax %eax

In order to generate negl, I added patterns in Target/X86/X86InstrCompiler.td:
def : Pat<(X86sub_flag 0, GR32:$src), (NEG32r GR32:$src)>;

rdar: 10961709
llvm-svn: 156312
2012-05-07 18:06:23 +00:00
..
autoconf [build] Add build check for ::arc4random(). 2012-05-05 16:36:16 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake [build] Add build check for ::arc4random(). 2012-05-05 16:36:16 +00:00
docs Use correct variable in this example. Pointed out by waynix on IRC. 2012-05-03 15:25:19 +00:00
examples Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
include Fix trivial typo in llvm_move. 2012-05-07 06:00:23 +00:00
lib X86: optimization for -(x != 0) 2012-05-07 18:06:23 +00:00
projects Update all outdated autoconf files in the sample project. 2012-05-05 15:02:39 +00:00
runtime Switch to c-style comments in a C file. 2012-04-27 19:30:29 +00:00
test X86: optimization for -(x != 0) 2012-05-07 18:06:23 +00:00
tools Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
unittests SmallVector: Don't rely on having an assignment operator around in push_back for POD-like types. 2012-04-29 10:53:29 +00:00
utils TableGen: AsmMatcher diagnostic when missing instruction mnemonic. 2012-05-06 17:33:14 +00:00
.gitignore Add tools/lld to .gitignore. 2012-05-02 21:25:32 +00:00
CMakeLists.txt This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it. 2012-05-04 20:18:50 +00:00
CREDITS.TXT Update the documentation of CellSPU, in case it gets removed in 3.1. 2012-04-29 20:00:55 +00:00
LICENSE.TXT Add YAML parser to Support. 2012-04-03 23:09:22 +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 When cross compiling, install a host version of llvm-config. <rdar://11187889> 2012-04-19 23:19:55 +00:00
Makefile.common
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
README.txt test commit 2012-03-20 13:12:38 +00:00
configure [build] Add build check for ::arc4random(). 2012-05-05 16:36:16 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00

README.txt

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.