summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-04-17 17:47:38 +0000
committerChris Lattner <sabre@nondot.org>2011-04-17 17:47:38 +0000
commiteb729d48ff586494d59c5a1716a335137160406b (patch)
treee42c0272e31c114c3461bb3f6452a455b2773eb6 /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
parent4832660b4d62462ee83f4131accaa64991c01dfe (diff)
downloadbcm5719-llvm-eb729d48ff586494d59c5a1716a335137160406b.tar.gz
bcm5719-llvm-eb729d48ff586494d59c5a1716a335137160406b.zip
fix an x86 fast isel issue where we'd completely give up on folding an address
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
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FastISel.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud