- Apr 18, 2011
-
-
Devang Patel authored
llvm-svn: 129715
-
Jakob Stoklund Olesen authored
the spilled register. This is quite common on ARM now that some stores have early-clobber defines. llvm-svn: 129714
-
Sean Callanan authored
superclass variable is instantiated properly. llvm-svn: 129713
-
Eric Christopher authored
registers for fast allocation a different way. This has us updating used registers only when we're using that exact register. Fixes rdar://9207598 llvm-svn: 129711
-
Chandler Carruth authored
silences Clang's -Wunused-function when building in release mode. llvm-svn: 129709
-
Owen Anderson authored
llvm-svn: 129708
-
Anders Carlsson authored
llvm-svn: 129696
-
Chris Lattner authored
this fixes a few rejects on c++ iterator loops. llvm-svn: 129694
-
-
Chris Lattner authored
the generated FastISel. X86 doesn't need to generate code to match ADD16ri8 since ADD16ri will do just fine. This is a small codesize win in the generated instruction selector. llvm-svn: 129692
-
Chris Lattner authored
value constraints on them (when defined as ImmLeaf's). This is particularly important for X86-64, where almost all reg/imm instructions take a i64immSExt32 immediate operand, which has a value constraint. Before this patch we ended up iseling the examples into such amazing code as: movabsq $7, %rax imulq %rax, %rdi movq %rdi, %rax ret now we produce: imulq $7, %rdi, %rax ret This dramatically shrinks the generated code at -O0 on x86-64. llvm-svn: 129691
-
Chris Lattner authored
and to not rely on the register allocator's arbitrary operand choices. llvm-svn: 129690
-
Eli Friedman authored
llvm-svn: 129689
-
Eli Friedman authored
small heap-allocated SmallString because it unconditionally forces a malloc. llvm-svn: 129688
-
Eli Friedman authored
reduces the number of calls to malloc(). llvm-svn: 129687
-
Anders Carlsson authored
Use an empty ArrayRef instead of an empty std::vector for the Function::get overload that takes no parameters. llvm-svn: 129686
-
NAKAMURA Takumi authored
H1 ... Title (and might be Chapter in future) H2 ... Section H3 ... Subsection H4 ... Sub-subsection llvm-svn: 129683
-
Chris Lattner authored
No functionality change. llvm-svn: 129680
-
Chris Lattner authored
since the strings are always exactly one character, and there are usually only 2-3 operands. llvm-svn: 129678
-
Chris Lattner authored
llvm-svn: 129677
-
Chris Lattner authored
simplifying them and exposing more information to tblgen. It would be nice if other target authors adopted this as well, particularly arm since it has fastisel. llvm-svn: 129676
-
Chris Lattner authored
kind of predicate: one that is specific to imm nodes. The predicate function specified here just checks an int64_t directly instead of messing around with SDNode's. The virtue of this is that it means that fastisel and other things can reason about these predicates. llvm-svn: 129675
-
- Apr 17, 2011
-
-
Chris Lattner authored
structure and fix some fixmes. We now have a TreePredicateFn class that handles all of the decoding of these things. This is an internal cleanup that has no impact on the code generated by tblgen. llvm-svn: 129670
-
Chris Lattner authored
llvm-svn: 129668
-
Chris Lattner authored
2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts 3. teach tblgen to handle shift immediates that are different sizes than the shifted operands, eliminating some code from the X86 fast isel backend. 4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function instead of FastEmit_ri to simplify code. llvm-svn: 129666
-
Chris Lattner authored
when we have a global variable base an an index. Instead, just give up on folding the global variable. Before we'd geenrate: _test: ## @test ## BB#0: movq _rtx_length@GOTPCREL(%rip), %rax leaq (%rax), %rax addq %rdi, %rax movzbl (%rax), %eax ret now we generate: _test: ## @test ## BB#0: movq _rtx_length@GOTPCREL(%rip), %rax movzbl (%rax,%rdi), %eax ret The difference is even more significant when there is a scale involved. This fixes rdar://9289558 - total fail with addr mode formation at -O0/x86-64 llvm-svn: 129664
-
Chris Lattner authored
less trivial things) into a dummy lea. Before we generated: _test: ## @test movq _G@GOTPCREL(%rip), %rax leaq (%rax), %rax ret now we produce: _test: ## @test movq _G@GOTPCREL(%rip), %rax ret This is part of rdar://9289558 llvm-svn: 129662
-
Chris Lattner authored
llvm-svn: 129661
-
rdar://9289512Chris Lattner authored
The basic issue here is that bottom-up isel is matching the branch and compare, and was failing to fold the load into the branch/compare combo. Fixing this (by allowing folding into any instruction of a sequence that is selected) allows us to produce things like: cmpb $0, 52(%rax) je LBB4_2 instead of: movb 52(%rax), %cl cmpb $0, %cl je LBB4_2 This makes the generated -O0 code run a bit faster, but also speeds up compile time by putting less pressure on the register allocator and generating less code. This was one of the biggest classes of missing load folding. Implementing this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm) line count. llvm-svn: 129656
-
Chris Lattner authored
which don't need to check for falling off the end of a block *and* end of phi nodes, since terminators are never phis. llvm-svn: 129655
-
Eli Friedman authored
llvm-svn: 129654
-
rdar://9289583Chris Lattner authored
allowing us to fold the immediate into the 'and' in this case: int test1(int i) { return 8&i; } llvm-svn: 129653
-
Eli Friedman authored
Returning a new node makes the code try to replace the old node, which in the included testcase is killed by CSE. llvm-svn: 129650
-
- Apr 16, 2011
-
-
Frits van Bommel authored
llvm-svn: 129644
-
Frits van Bommel authored
Add test cases for Jay's r129641 and fix a 32-bit-centric testcase in a file with a 64-bit datalayout. llvm-svn: 129643
-
Francois Pichet authored
For further information on this particular issue see: http://connect.microsoft.com/VisualStudio/feedback/details/520043/error-converting-from-null-to-a-pointer-type-in-std-pair llvm-svn: 129642
-
Jay Foad authored
found by code inspection. llvm-svn: 129641
-
Francois Pichet authored
llvm-svn: 129640
-
Benjamin Kramer authored
llvm-svn: 129639
-
Benjamin Kramer authored
llvm-svn: 129638
-