llvm-6502/lib
Benjamin Kramer 202be06318 X86: If we have an instruction that sets a flag and a zero test on the input of that instruction try to eliminate the test.
For example
	tzcntl	%edi, %ebx
	testl %edi, %edi
	je	.label

can be rewritten into
	tzcntl	%edi, %ebx
	jb 	.label

A minor complication is that tzcnt sets CF instead of ZF when the input
is zero, we have to rewrite users of the flags from ZF to CF. Currently
we recognize patterns using lzcnt, tzcnt and popcnt.

Differential Revision: http://reviews.llvm.org/D3454

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208788 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-14 16:14:45 +00:00
..
Analysis Update the comments for ComputeMaskedBits, which lost its Mask parameter 2014-05-14 08:00:07 +00:00
AsmParser Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
Bitcode IR: Don't allow non-default visibility on local linkage 2014-05-07 22:57:20 +00:00
CodeGen Update the comments for ComputeMaskedBits, which lost its Mask parameter 2014-05-14 08:00:07 +00:00
DebugInfo [DWARF parser] Cleanup code in DWARFDebugLine. 2014-04-30 00:09:19 +00:00
ExecutionEngine [RuntimeDyld] Fix handling of i386 PC-rel external relocations. This fixes 2014-05-13 22:09:07 +00:00
IR Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
IRReader [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
LTO Move EmitDwarfAdvanceLineAddr and EmitDwarfAdvanceFrameAddr to the obj streamer. 2014-05-12 14:43:25 +00:00
MC Make the split function use StringRef::split. 2014-05-13 19:55:17 +00:00
Object [obj2yaml] Support ELF input format in the obj2yaml tool. 2014-05-14 05:07:47 +00:00
Option Protect the ArgList dtor 2014-04-20 23:59:00 +00:00
ProfileData Fixing a cast-qual warning. getBufferStart() and getBufferEnd() both return a const char *, so casting to non-const was triggering a warning (even though the assignment and usage was always const anyway). 2014-05-01 17:16:24 +00:00
Support MemoryBuffer: don't force mmap when stat fails 2014-05-09 08:57:32 +00:00
TableGen Use a vector of unique_ptrs to fix a memory leak introduced in r208179. 2014-05-08 09:29:28 +00:00
Target X86: If we have an instruction that sets a flag and a zero test on the input of that instruction try to eliminate the test. 2014-05-14 16:14:45 +00:00
Transforms [asan] Fix compiler warnings. 2014-05-14 10:56:19 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00