- Dec 17, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 122073
-
Owen Anderson authored
Reapply r121905 (automatic synthesis of @llvm.sadd.with.overflow) with a fix for a bug that manifested itself on the DragonEgg self-host bot. Unfortunately, the testcase is pretty messy and doesn't reduce well due to interactions with other parts of InstCombine. llvm-svn: 122072
-
Rafael Espindola authored
llvm-svn: 122070
-
Rafael Espindola authored
llvm-svn: 122067
-
Michael J. Spencer authored
llvm-svn: 122066
-
Michael J. Spencer authored
llvm-svn: 122065
-
Rafael Espindola authored
llvm-svn: 122064
-
Benjamin Kramer authored
llvm-svn: 122054
-
Benjamin Kramer authored
llvm-svn: 122053
-
Kalle Raiskila authored
Patch (slightly modified) by Visa Putkinen. llvm-svn: 122052
-
Rafael Espindola authored
llvm-svn: 122050
-
Chris Lattner authored
comparisons formed by comparisons. For example, this: void foo(unsigned x) { if (x == 0 || x == 1 || x == 3 || x == 4 || x == 6) bar(); } compiles into: _foo: ## @foo ## BB#0: ## %entry cmpl $6, %edi ja LBB0_2 ## BB#1: ## %entry movl %edi, %eax movl $91, %ecx btq %rax, %rcx jb LBB0_3 instead of: _foo: ## @foo ## BB#0: ## %entry cmpl $2, %edi jb LBB0_4 ## BB#1: ## %switch.early.test cmpl $6, %edi ja LBB0_3 ## BB#2: ## %switch.early.test movl %edi, %eax movl $88, %ecx btq %rax, %rcx jb LBB0_4 This catches a bunch of cases in GCC, which look like this: %804 = load i32* @which_alternative, align 4, !tbaa !0 %805 = icmp ult i32 %804, 2 %806 = icmp eq i32 %804, 3 %or.cond121 = or i1 %805, %806 %807 = icmp eq i32 %804, 4 %or.cond124 = or i1 %or.cond121, %807 br i1 %or.cond124, label %.thread, label %808 turning this into a range comparison. llvm-svn: 122045
-
Daniel Dunbar authored
llvm-svn: 122044
-
Daniel Dunbar authored
IsSymbolRefDifferenceFullyResolved(). For example, we will now fold away something like: -- _a: ... L0: ... L1: ... .long (L1 - L0) / 2 -- llvm-svn: 122043
-
Daniel Dunbar authored
IsSymbolRefDifferenceFullyResolved, it turns out this does change behavior on enough cases for x86-32 that I would rather wait a bit on it. - In practice, we will want to change this eventually because it only means we generate less relocations (it also eliminates the need for the horrible '.set' hack that Darwin requires in some places). llvm-svn: 122042
-
Daniel Dunbar authored
- Unlike for fixups, we always do the "reliable" thing (not just for x86_64). - Since Darwin 'as' would typically reject things that using this will allow, we don't need to worry about compatibility. llvm-svn: 122038
-
Daniel Dunbar authored
- Currently just has stub implementations for Mach-O, ELF, and COFF. llvm-svn: 122037
-
Jakob Stoklund Olesen authored
This is a three-way interval list intersection between a virtual register, a live interval union, and a loop. It will be used to identify interference-free loops for live range splitting. llvm-svn: 122034
-
Daniel Dunbar authored
-- and remove FIXME asking for the same! llvm-svn: 122032
-
Daniel Dunbar authored
assembler. llvm-svn: 122031
-
Jim Grosbach authored
llvm-svn: 122026
-
Daniel Dunbar authored
superceded and was effectively dead. llvm-svn: 122024
-
Daniel Dunbar authored
llvm-svn: 122023
-
Jakob Stoklund Olesen authored
llvm-svn: 122019
-
Bob Wilson authored
Radar 8776599 llvm-svn: 122018
-
Bob Wilson authored
llvm-svn: 122017
-
Bob Wilson authored
llvm-svn: 122016
-
Bob Wilson authored
llvm-svn: 122015
-
Dan Gohman authored
a null endptr argument, because they may write to errno. This fixes a seflhost miscompile observed on Linux targets when TBAA was enabled. llvm-svn: 122014
-
Daniel Dunbar authored
llvm-svn: 122013
-
Daniel Dunbar authored
here? llvm-svn: 122012
-
Daniel Dunbar authored
in MCAsmLayout). llvm-svn: 122011
-
Daniel Dunbar authored
llvm-svn: 122010
-
Daniel Dunbar authored
llvm-svn: 122009
-
Daniel Dunbar authored
llvm-svn: 122008
-
Rafael Espindola authored
llvm-svn: 122006
-
- Dec 16, 2010
-
-
Rafael Espindola authored
llvm-svn: 122005
-
Michael J. Spencer authored
the MemoryBuffer*, however, it doesn't seem to delete it. llvm-svn: 122004
-
Jakob Stoklund Olesen authored
llvm-svn: 121995
-
Wesley Peck authored
are correctly marked as used. This removes a hack where the call instructions marked all possible argument registers as used in the tablegen description. llvm-svn: 121994
-