Improve comments for r211040
authorLouis Gerbarg <lgg@apple.com>
Mon, 16 Jun 2014 20:31:50 +0000 (20:31 +0000)
committerLouis Gerbarg <lgg@apple.com>
Mon, 16 Jun 2014 20:31:50 +0000 (20:31 +0000)
Added comment to clarify why we r211040 choose to bail out of fast isel instead
of generating a more complicated relocation, and fix mislabelled register in the
comments of the asan test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211052 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86FastISel.cpp
test/DebugInfo/X86/debug-loc-asan.ll

index 4b8a8362c5aac312ee8d503bfe4c260447bfd707..e490c274b5faa6cc1717d1e9b5d040cdbac1c034 100644 (file)
@@ -2709,7 +2709,10 @@ unsigned X86FastISel::TargetMaterializeConstant(const Constant *C) {
 
   // Materialize addresses with LEA instructions.
   if (isa<GlobalValue>(C)) {
-    //LEA can only handle 32 bit immediates
+    // LEA can only handle 32 bit immediates. Currently this happens pretty
+    // rarely, so rather than deal with it just bail out of fast isel. If any
+    // architectures endis up needing to use this path a lot then fast isel
+    // could get the address with a MOV64ri and use that to load the value.
     if (TM.getRelocationModel() == Reloc::Static && Subtarget->is64Bit())
       return false;
 
index 8730cf9d361c3a68422e2e0beee39c77d1e869dd..0e02c678717541c988076c8758e1985f38c0bf1f 100644 (file)
@@ -9,7 +9,7 @@
 ; }
 ; with "clang++ -S -emit-llvm -fsanitize=address -O0 -g test.cc"
 
-; First, argument variable "y" resides in %rdi:
+; First, argument variable "y" resides in %rdx:
 ; CHECK: DEBUG_VALUE: bar:y <- RDX
 
 ; Then its address is stored in a location on a stack:
@@ -21,7 +21,7 @@
 ; CHECK: .Ldebug_loc{{[0-9]+}}:
 ; We expect two location ranges for the variable.
 
-; First, it is stored in %rdi:
+; First, it is stored in %rdx:
 ; CHECK:      .Lset{{[0-9]+}} = .Lfunc_begin0-.Lfunc_begin0
 ; CHECK-NEXT: .quad .Lset{{[0-9]+}}
 ; CHECK-NEXT: .Lset{{[0-9]+}} = [[START_LABEL]]-.Lfunc_begin0