From 1dc555c0d3a4abc2d0b6fe15ba2070b3ac884143 Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Sat, 20 Nov 2004 00:10:20 +0000 Subject: [PATCH] Revert the patch that adds Function* for each 64-bit libc div/mul/rem that we want to do; instead, we can use MachineInstr::addExternalSymbol(char*, bool) and thus we don't have to modify the Module as we are code generating for it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18025 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Sparc/SparcV8ISelSimple.cpp | 23 ----------------------- lib/Target/SparcV8/SparcV8ISelSimple.cpp | 23 ----------------------- 2 files changed, 46 deletions(-) diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index 2786c13f67a..8c448fcad38 100644 --- a/lib/Target/Sparc/SparcV8ISelSimple.cpp +++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp @@ -36,10 +36,6 @@ namespace { MachineBasicBlock *BB; // The current MBB we are compiling int VarArgsOffset; // Offset from fp for start of varargs area - // External functions we may use in compiling the Module - Function *__div64Fn, *__mul64Fn, *__rem64Fn, - *__udiv64Fn, *__umul64Fn, *__urem64Fn; - std::map RegMap; // Mapping between Val's and SSA Regs // MBBMap - Mapping between LLVM BB -> Machine BB @@ -47,25 +43,6 @@ namespace { V8ISel(TargetMachine &tm) : TM(tm), F(0), BB(0) {} - bool doInitialization(Module &M) { - // Add external functions that we may call - Type *l = Type::LongTy; - Type *ul = Type::ULongTy; - // long __div64(long, long); - __div64Fn = M.getOrInsertFunction("__div64", l, l, l, 0); - // long __div64(long, long); - __mul64Fn = M.getOrInsertFunction("__mul64", l, l, l, 0); - // long __div64(long, long); - __rem64Fn = M.getOrInsertFunction("__rem64", l, l, l, 0); - // unsigned long __udiv64(unsigned long, unsigned long); - __udiv64Fn = M.getOrInsertFunction("__udiv64", ul, ul, ul, 0); - // unsigned long __umul64(unsigned long, unsigned long); - __umul64Fn = M.getOrInsertFunction("__umul64", ul, ul, ul, 0); - // unsigned long __urem64(unsigned long, unsigned long); - __urem64Fn = M.getOrInsertFunction("__urem64", ul, ul, ul, 0); - return true; - } - /// runOnFunction - Top level implementation of instruction selection for /// the entire function. /// diff --git a/lib/Target/SparcV8/SparcV8ISelSimple.cpp b/lib/Target/SparcV8/SparcV8ISelSimple.cpp index 2786c13f67a..8c448fcad38 100644 --- a/lib/Target/SparcV8/SparcV8ISelSimple.cpp +++ b/lib/Target/SparcV8/SparcV8ISelSimple.cpp @@ -36,10 +36,6 @@ namespace { MachineBasicBlock *BB; // The current MBB we are compiling int VarArgsOffset; // Offset from fp for start of varargs area - // External functions we may use in compiling the Module - Function *__div64Fn, *__mul64Fn, *__rem64Fn, - *__udiv64Fn, *__umul64Fn, *__urem64Fn; - std::map RegMap; // Mapping between Val's and SSA Regs // MBBMap - Mapping between LLVM BB -> Machine BB @@ -47,25 +43,6 @@ namespace { V8ISel(TargetMachine &tm) : TM(tm), F(0), BB(0) {} - bool doInitialization(Module &M) { - // Add external functions that we may call - Type *l = Type::LongTy; - Type *ul = Type::ULongTy; - // long __div64(long, long); - __div64Fn = M.getOrInsertFunction("__div64", l, l, l, 0); - // long __div64(long, long); - __mul64Fn = M.getOrInsertFunction("__mul64", l, l, l, 0); - // long __div64(long, long); - __rem64Fn = M.getOrInsertFunction("__rem64", l, l, l, 0); - // unsigned long __udiv64(unsigned long, unsigned long); - __udiv64Fn = M.getOrInsertFunction("__udiv64", ul, ul, ul, 0); - // unsigned long __umul64(unsigned long, unsigned long); - __umul64Fn = M.getOrInsertFunction("__umul64", ul, ul, ul, 0); - // unsigned long __urem64(unsigned long, unsigned long); - __urem64Fn = M.getOrInsertFunction("__urem64", ul, ul, ul, 0); - return true; - } - /// runOnFunction - Top level implementation of instruction selection for /// the entire function. /// -- 2.34.1