[llvm] r209057 - ARM: use the proper target object format for WoA

Saleem Abdulrasool compnerd at compnerd.org
Fri May 16 21:28:09 PDT 2014


Author: compnerd
Date: Fri May 16 23:28:08 2014
New Revision: 209057

URL: http://llvm.org/viewvc/llvm-project?rev=209057&view=rev
Log:
ARM: use the proper target object format for WoA

WoA uses COFF, not ELF.  ARMISelLowering::createTLOF would previously return ELF
for any non-MachO platform.  This was a missed site when the original change for
target format support for Windows on ARM was done.

Added:
    llvm/trunk/test/CodeGen/ARM/Windows/read-only-data.ll
Modified:
    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=209057&r1=209056&r2=209057&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Fri May 16 23:28:08 2014
@@ -158,7 +158,8 @@ void ARMTargetLowering::addQRTypeForNEON
 static TargetLoweringObjectFile *createTLOF(TargetMachine &TM) {
   if (TM.getSubtarget<ARMSubtarget>().isTargetMachO())
     return new TargetLoweringObjectFileMachO();
-
+  if (TM.getSubtarget<ARMSubtarget>().isTargetWindows())
+    return new TargetLoweringObjectFileCOFF();
   return new ARMElfTargetObjectFile();
 }
 

Added: llvm/trunk/test/CodeGen/ARM/Windows/read-only-data.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/Windows/read-only-data.ll?rev=209057&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/Windows/read-only-data.ll (added)
+++ llvm/trunk/test/CodeGen/ARM/Windows/read-only-data.ll Fri May 16 23:28:08 2014
@@ -0,0 +1,15 @@
+; RUN: llc -mtriple thumbv7-windows -filetype asm -o - %s | FileCheck %s
+
+ at .str = private unnamed_addr constant [7 x i8] c"string\00", align 1
+
+declare arm_aapcs_vfpcc void @callee(i8*)
+
+define arm_aapcs_vfpcc void @function() {
+entry:
+  call arm_aapcs_vfpcc void @callee(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0))
+  ret void
+}
+
+; CHECK: .section ".rdata","rd"
+; CHECK-NOT: .section ".rodata.str1.1"
+





More information about the llvm-commits mailing list