- Apr 30, 2011
-
-
Benjamin Kramer authored
This obviously helps a lot if the division would be turned into a libcall (think i64 udiv on i386), but div is also one of the few remaining instructions on modern CPUs that become more expensive when the bitwidth gets bigger. This also helps register pressure on i386 when dividing chars, divb needs two 8-bit parts of a 16 bit register as input where divl uses two registers. int foo(unsigned char a) { return a/10; } int bar(unsigned char a, unsigned char b) { return a/b; } compiles into (x86_64) _foo: imull $205, %edi, %eax shrl $11, %eax ret _bar: movzbl %dil, %eax divb %sil, %al movzbl %al, %eax ret llvm-svn: 130615
-
Benjamin Kramer authored
This folds away silly stuff like (a&255)/1000 -> 0. llvm-svn: 130614
-
Rafael Espindola authored
is a bit ugly, but doing it on the base MCStreamer would be redundant with the object streamer which does it using SD. llvm-svn: 130611
-
Rafael Espindola authored
llvm-svn: 130609
-
Jakob Stoklund Olesen authored
This could happen when trying to use a value that had been eliminated after dead code elimination and folding loads. llvm-svn: 130597
-
Jakob Stoklund Olesen authored
llvm-svn: 130596
-
Rafael Espindola authored
the final assembly. It is the same technique used when targeting assemblers that don't support .loc. llvm-svn: 130587
-
Rafael Espindola authored
llvm-svn: 130585
-
Jakob Stoklund Olesen authored
llvm-svn: 130582
-
Jakob Stoklund Olesen authored
llvm-svn: 130568
-
Bill Wendling authored
llvm-svn: 130562
-
Eli Friedman authored
Make FastEmit_ri_ try a bit harder to succeed for supported operations; FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM. llvm-svn: 130560
-
Eric Christopher authored
llvm-svn: 130558
-
Eli Friedman authored
llvm-svn: 130557
-
Eli Friedman authored
llvm-svn: 130552
-
Devang Patel authored
llvm-svn: 130551
-
Eric Christopher authored
if it ever did it needs the def machinery. llvm-svn: 130549
-
- Apr 29, 2011
-
-
Eric Christopher authored
llvm-svn: 130546
-
Rafael Espindola authored
lets this code be used when producing assembly code for old assemblers without uleb support. llvm-svn: 130544
-
Rafael Espindola authored
llvm-svn: 130543
-
Devang Patel authored
llvm-svn: 130542
-
Eli Friedman authored
Fix a rather obscure crash caused by ARM fast-isel generating code which redefines a register. rdar://problem/9338332 . llvm-svn: 130539
-
Devang Patel authored
llvm-svn: 130536
-
Eric Christopher authored
for bools, but is a start. llvm-svn: 130534
-
Peter Collingbourne authored
llvm-svn: 130528
-
Peter Collingbourne authored
llvm-svn: 130527
-
Peter Collingbourne authored
llvm-svn: 130526
-
Daniel Dunbar authored
currently used, because variables don't get reported as being "defined". llvm-svn: 130524
-
Daniel Dunbar authored
MC: Change variable symbols to be recognized as defined, by assigning their sections based on FindAssociatedSection(). llvm-svn: 130523
-
Daniel Dunbar authored
llvm-svn: 130522
-
Daniel Dunbar authored
llvm-svn: 130520
-
Daniel Dunbar authored
MC/Mach-O: Find section ordinal's by looking at the symbol, instead of assuming they are present in a fragment. llvm-svn: 130519
-
Devang Patel authored
Hoist MCLineEntry construction AsmPrinter so that anyone who derives from AsmPrinter can have line number entries. PR 9810 llvm-svn: 130518
-
Daniel Dunbar authored
that associate sections with expressions. llvm-svn: 130517
-
Daniel Dunbar authored
llvm-svn: 130515
-
Douglas Gregor authored
Fix a C++0x portability issue with std::make_pair. Explicitly providing template arguments no longer works when the call arguments are lvalues. llvm-svn: 130513
-
Douglas Gregor authored
llvm-svn: 130510
-
Rafael Espindola authored
llvm-svn: 130504
-
Rafael Espindola authored
emmits: .cfi_personality, .cfi_lsda and the moves. llvm-svn: 130503
-
Andrew Trick authored
Generalization of Nate Begeman's patch! llvm-svn: 130502
-