[llvm-commits] CVS: llvm/lib/Transforms/Utils/LowerInvoke.cpp

2006-09-05 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Utils:

LowerInvoke.cpp updated: 1.40 - 1.41
---
Log message:

Fix Duraid's changes to work when TLI is null.  This fixes the failing 
lowerinvoke regtests.


---
Diffs of the changes:  (+7 -3)

 LowerInvoke.cpp |   10 +++---
 1 files changed, 7 insertions(+), 3 deletions(-)


Index: llvm/lib/Transforms/Utils/LowerInvoke.cpp
diff -u llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.40 
llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.41
--- llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.40  Mon Sep  4 01:21:35 2006
+++ llvm/lib/Transforms/Utils/LowerInvoke.cpp   Tue Sep  5 12:48:07 2006
@@ -113,7 +113,9 @@
   AbortMessage = 0;
   if (ExpensiveEHSupport) {
 // Insert a type for the linked list of jump buffers.
-const Type *JmpBufTy = ArrayType::get(VoidPtrTy, TLI-getJumpBufSize());
+unsigned JBSize = TLI ? TLI-getJumpBufSize() : 0;
+JBSize = JBSize ? JBSize : 200;
+const Type *JmpBufTy = ArrayType::get(VoidPtrTy, JBSize);
 
 { // The type is recursive, so use a type holder.
   std::vectorconst Type* Elements;
@@ -130,11 +132,12 @@
 
 // Now that we've done that, insert the jmpbuf list head global, unless it
 // already exists.
-if (!(JBListHead = M.getGlobalVariable(llvm.sjljeh.jblist, PtrJBList)))
+if (!(JBListHead = M.getGlobalVariable(llvm.sjljeh.jblist, PtrJBList))) {
   JBListHead = new GlobalVariable(PtrJBList, false,
   GlobalValue::LinkOnceLinkage,
   Constant::getNullValue(PtrJBList),
   llvm.sjljeh.jblist, M);
+}
 SetJmpFn = M.getOrInsertFunction(llvm.setjmp, Type::IntTy,
  PointerType::get(JmpBufTy), (Type *)0);
 LongJmpFn = M.getOrInsertFunction(llvm.longjmp, Type::VoidTy,
@@ -452,8 +455,9 @@
 // Create an alloca for the incoming jump buffer ptr and the new jump 
buffer
 // that needs to be restored on all exits from the function.  This is an
 // alloca because the value needs to be live across invokes.
+unsigned Align = TLI ? TLI-getJumpBufAlignment() : 0;
 AllocaInst *JmpBuf = 
-  new AllocaInst(JBLinkTy, 0, TLI-getJumpBufAlignment(), jblink, 
F.begin()-begin());
+  new AllocaInst(JBLinkTy, 0, Align, jblink, F.begin()-begin());
 
 std::vectorValue* Idx;
 Idx.push_back(Constant::getNullValue(Type::IntTy));



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineInstr.h

2006-09-05 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

MachineInstr.h updated: 1.185 - 1.186
---
Log message:

Initialize IsDef of all non-register MachineOperand to false.


---
Diffs of the changes:  (+7 -0)

 MachineInstr.h |7 +++
 1 files changed, 7 insertions(+)


Index: llvm/include/llvm/CodeGen/MachineInstr.h
diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.185 
llvm/include/llvm/CodeGen/MachineInstr.h:1.186
--- llvm/include/llvm/CodeGen/MachineInstr.h:1.185  Mon Sep  4 21:31:13 2006
+++ llvm/include/llvm/CodeGen/MachineInstr.hTue Sep  5 13:56:02 2006
@@ -295,6 +295,7 @@
   void addImmOperand(int64_t Val) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_Immediate;
+Op.IsDef = false;
 Op.contents.immedVal = Val;
 Op.offset = 0;
   }
@@ -302,6 +303,7 @@
   void addMachineBasicBlockOperand(MachineBasicBlock *MBB) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_MachineBasicBlock;
+Op.IsDef = false;
 Op.contents.MBB = MBB;
 Op.offset = 0;
   }
@@ -311,6 +313,7 @@
   void addFrameIndexOperand(unsigned Idx) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_FrameIndex;
+Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = 0;
   }
@@ -321,6 +324,7 @@
   void addConstantPoolIndexOperand(unsigned Idx, int Offset) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_ConstantPoolIndex;
+Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = Offset;
   }
@@ -331,6 +335,7 @@
   void addJumpTableIndexOperand(unsigned Idx) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_JumpTableIndex;
+Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = 0;
   }
@@ -338,6 +343,7 @@
   void addGlobalAddressOperand(GlobalValue *GV, int Offset) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_GlobalAddress;
+Op.IsDef = false;
 Op.contents.GV = GV;
 Op.offset = Offset;
   }
@@ -347,6 +353,7 @@
   void addExternalSymbolOperand(const char *SymName) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_ExternalSymbol;
+Op.IsDef = false;
 Op.contents.SymbolName = SymName;
 Op.offset = 0;
   }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/CodeGen/LiveVariables.cpp MachineInstr.cpp

2006-09-05 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen:

LiveVariables.cpp updated: 1.58 - 1.59
MachineInstr.cpp updated: 1.124 - 1.125
---
Log message:

Only call isUse/isDef on register operands


---
Diffs of the changes:  (+7 -13)

 LiveVariables.cpp |4 ++--
 MachineInstr.cpp  |   16 +---
 2 files changed, 7 insertions(+), 13 deletions(-)


Index: llvm/lib/CodeGen/LiveVariables.cpp
diff -u llvm/lib/CodeGen/LiveVariables.cpp:1.58 
llvm/lib/CodeGen/LiveVariables.cpp:1.59
--- llvm/lib/CodeGen/LiveVariables.cpp:1.58 Sat Sep  2 19:05:09 2006
+++ llvm/lib/CodeGen/LiveVariables.cpp  Tue Sep  5 15:19:27 2006
@@ -248,7 +248,7 @@
   // Process all explicit uses...
   for (unsigned i = 0; i != NumOperandsToProcess; ++i) {
 MachineOperand MO = MI-getOperand(i);
-if (MO.isUse()  MO.isRegister()  MO.getReg()) {
+if (MO.isRegister()  MO.isUse()  MO.getReg()) {
   if (MRegisterInfo::isVirtualRegister(MO.getReg())){
 HandleVirtRegUse(getVarInfo(MO.getReg()), MBB, MI);
   } else if (MRegisterInfo::isPhysicalRegister(MO.getReg()) 
@@ -268,7 +268,7 @@
   // Process all explicit defs...
   for (unsigned i = 0; i != NumOperandsToProcess; ++i) {
 MachineOperand MO = MI-getOperand(i);
-if (MO.isDef()  MO.isRegister()  MO.getReg()) {
+if (MO.isRegister()  MO.isDef()  MO.getReg()) {
   if (MRegisterInfo::isVirtualRegister(MO.getReg())) {
 VarInfo VRInfo = getVarInfo(MO.getReg());
 


Index: llvm/lib/CodeGen/MachineInstr.cpp
diff -u llvm/lib/CodeGen/MachineInstr.cpp:1.124 
llvm/lib/CodeGen/MachineInstr.cpp:1.125
--- llvm/lib/CodeGen/MachineInstr.cpp:1.124 Thu Jun 15 02:22:16 2006
+++ llvm/lib/CodeGen/MachineInstr.cpp   Tue Sep  5 15:19:27 2006
@@ -158,7 +158,7 @@
   unsigned StartOp = 0;
 
// Specialize printing if op#0 is definition
-  if (getNumOperands()  getOperand(0).isDef()  !getOperand(0).isUse()) {
+  if (getNumOperands()  getOperand(0).isReg()  getOperand(0).isDef()) {
 ::print(getOperand(0), OS, TM);
 OS   = ;
 ++StartOp;   // Don't print this operand again!
@@ -176,11 +176,8 @@
 OS   ;
 ::print(mop, OS, TM);
 
-if (mop.isDef())
-  if (mop.isUse())
-OS  defuse;
-  else
-OS  def;
+if (mop.isReg()  mop.isDef())
+  OS  def;
   }
 
   OS  \n;
@@ -204,11 +201,8 @@
 
   for (unsigned i = 0, N = MI.getNumOperands(); i  N; i++) {
 os  \t  MI.getOperand(i);
-if (MI.getOperand(i).isDef())
-  if (MI.getOperand(i).isUse())
-os  du;
-  else
-os  d;
+if (MI.getOperand(i).isReg()  MI.getOperand(i).isDef())
+  os  d;
   }
 
   return os  \n;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineInstr.h

2006-09-05 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

MachineInstr.h updated: 1.186 - 1.187
---
Log message:

IsDef can only be accessed / set if operand is a register.


---
Diffs of the changes:  (+16 -11)

 MachineInstr.h |   27 ---
 1 files changed, 16 insertions(+), 11 deletions(-)


Index: llvm/include/llvm/CodeGen/MachineInstr.h
diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.186 
llvm/include/llvm/CodeGen/MachineInstr.h:1.187
--- llvm/include/llvm/CodeGen/MachineInstr.h:1.186  Tue Sep  5 13:56:02 2006
+++ llvm/include/llvm/CodeGen/MachineInstr.hTue Sep  5 15:20:04 2006
@@ -143,10 +143,22 @@
 return contents.SymbolName;
   }
 
-  bool isUse() const { return !IsDef; }
-  bool isDef() const { return IsDef; }
-  void setIsUse() { IsDef = false; }
-  void setIsDef() { IsDef = true; }
+  bool isUse() const { 
+assert(isRegister()  Wrong MachineOperand accessor);
+return !IsDef;
+  }
+  bool isDef() const {
+assert(isRegister()  Wrong MachineOperand accessor);
+return IsDef;
+  }
+  void setIsUse() {
+assert(isRegister()  Wrong MachineOperand accessor);
+IsDef = false;
+  }
+  void setIsDef() {
+assert(isRegister()  Wrong MachineOperand accessor);
+IsDef = true;
+  }
 
   /// getReg - Returns the register number.
   ///
@@ -295,7 +307,6 @@
   void addImmOperand(int64_t Val) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_Immediate;
-Op.IsDef = false;
 Op.contents.immedVal = Val;
 Op.offset = 0;
   }
@@ -303,7 +314,6 @@
   void addMachineBasicBlockOperand(MachineBasicBlock *MBB) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_MachineBasicBlock;
-Op.IsDef = false;
 Op.contents.MBB = MBB;
 Op.offset = 0;
   }
@@ -313,7 +323,6 @@
   void addFrameIndexOperand(unsigned Idx) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_FrameIndex;
-Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = 0;
   }
@@ -324,7 +333,6 @@
   void addConstantPoolIndexOperand(unsigned Idx, int Offset) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_ConstantPoolIndex;
-Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = Offset;
   }
@@ -335,7 +343,6 @@
   void addJumpTableIndexOperand(unsigned Idx) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_JumpTableIndex;
-Op.IsDef = false;
 Op.contents.immedVal = Idx;
 Op.offset = 0;
   }
@@ -343,7 +350,6 @@
   void addGlobalAddressOperand(GlobalValue *GV, int Offset) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_GlobalAddress;
-Op.IsDef = false;
 Op.contents.GV = GV;
 Op.offset = Offset;
   }
@@ -353,7 +359,6 @@
   void addExternalSymbolOperand(const char *SymName) {
 MachineOperand Op = AddNewOperand();
 Op.opType = MachineOperand::MO_ExternalSymbol;
-Op.IsDef = false;
 Op.contents.SymbolName = SymName;
 Op.offset = 0;
   }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/X86/X86FloatingPoint.cpp

2006-09-05 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86FloatingPoint.cpp updated: 1.53 - 1.54
---
Log message:

Bugfix to work with the two-addr changes that have been made in the tree 
recently


---
Diffs of the changes:  (+2 -1)

 X86FloatingPoint.cpp |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86FloatingPoint.cpp
diff -u llvm/lib/Target/X86/X86FloatingPoint.cpp:1.53 
llvm/lib/Target/X86/X86FloatingPoint.cpp:1.54
--- llvm/lib/Target/X86/X86FloatingPoint.cpp:1.53   Sun Aug 27 07:54:01 2006
+++ llvm/lib/Target/X86/X86FloatingPoint.cppTue Sep  5 15:27:32 2006
@@ -752,7 +752,7 @@
   MachineInstr *MI = I;
 
   unsigned Op0 = getFPReg(MI-getOperand(0));
-  unsigned Op1 = getFPReg(MI-getOperand(1));
+  unsigned Op1 = getFPReg(MI-getOperand(2));
 
   // The first operand *must* be on the top of the stack.
   moveToTop(Op0, I);
@@ -760,6 +760,7 @@
   // Change the second operand to the stack register that the operand is in.
   // Change from the pseudo instruction to the concrete instruction.
   MI-RemoveOperand(0);
+  MI-RemoveOperand(1);
   MI-getOperand(0).setReg(getSTReg(Op1));
   MI-setOpcode(getConcreteOpcode(MI-getOpcode()));
   



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/select.ll

2006-09-05 Thread Chris Lattner


Changes in directory llvm/test/Regression/CodeGen/X86:

select.ll updated: 1.3 - 1.4
---
Log message:

make this harder


---
Diffs of the changes:  (+2 -1)

 select.ll |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/test/Regression/CodeGen/X86/select.ll
diff -u llvm/test/Regression/CodeGen/X86/select.ll:1.3 
llvm/test/Regression/CodeGen/X86/select.ll:1.4
--- llvm/test/Regression/CodeGen/X86/select.ll:1.3  Wed Mar 31 21:47:56 2004
+++ llvm/test/Regression/CodeGen/X86/select.ll  Tue Sep  5 15:27:06 2006
@@ -1,4 +1,5 @@
-; RUN: llvm-as  %s | llc -march=x86
+; RUN: llvm-as  %s | llc -march=x86 -mcpu=yonah 
+; RUN: llvm-as  %s | llc -march=x86 -mcpu=pentium
 
 bool %boolSel(bool %A, bool %B, bool %C) {
%X = select bool %A, bool %B, bool %C



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/CodeGen/RegAllocLocal.cpp

2006-09-05 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen:

RegAllocLocal.cpp updated: 1.88 - 1.89
---
Log message:

Only call isUse/isDef on register operands


---
Diffs of the changes:  (+3 -3)

 RegAllocLocal.cpp |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/lib/CodeGen/RegAllocLocal.cpp
diff -u llvm/lib/CodeGen/RegAllocLocal.cpp:1.88 
llvm/lib/CodeGen/RegAllocLocal.cpp:1.89
--- llvm/lib/CodeGen/RegAllocLocal.cpp:1.88 Sun Sep  3 02:15:37 2006
+++ llvm/lib/CodeGen/RegAllocLocal.cpp  Tue Sep  5 15:32:06 2006
@@ -552,7 +552,7 @@
 for (unsigned i = 0; i != MI-getNumOperands(); ++i) {
   MachineOperand MO = MI-getOperand(i);
   // here we are looking for only used operands (never defuse)
-  if (!MO.isDef()  MO.isRegister()  MO.getReg() 
+  if (MO.isRegister()  !MO.isDef()  MO.getReg() 
   MRegisterInfo::isVirtualRegister(MO.getReg()))
 MI = reloadVirtReg(MBB, MI, i);
 }
@@ -584,7 +584,7 @@
 // are defined, and marking explicit destinations in the PhysRegsUsed map.
 for (unsigned i = 0, e = MI-getNumOperands(); i != e; ++i) {
   MachineOperand MO = MI-getOperand(i);
-  if (MO.isDef()  MO.isRegister()  MO.getReg() 
+  if (MO.isRegister()  MO.isDef()  MO.getReg() 
   MRegisterInfo::isPhysicalRegister(MO.getReg())) {
 unsigned Reg = MO.getReg();
 PhysRegsEverUsed[Reg] = true;
@@ -626,7 +626,7 @@
 //
 for (unsigned i = 0, e = MI-getNumOperands(); i != e; ++i) {
   MachineOperand MO = MI-getOperand(i);
-  if (MO.isDef()  MO.isRegister()  MO.getReg() 
+  if (MO.isRegister()  MO.isDef()  MO.getReg() 
   MRegisterInfo::isVirtualRegister(MO.getReg())) {
 unsigned DestVirtReg = MO.getReg();
 unsigned DestPhysReg;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/tools/lto/lto.cpp

2006-09-05 Thread Devang Patel


Changes in directory llvm/tools/lto:

lto.cpp updated: 1.8 - 1.9
---
Log message:

Extract target triplet from optimized module.
Untabify.


---
Diffs of the changes:  (+4 -1)

 lto.cpp |5 -
 1 files changed, 4 insertions(+), 1 deletion(-)


Index: llvm/tools/lto/lto.cpp
diff -u llvm/tools/lto/lto.cpp:1.8 llvm/tools/lto/lto.cpp:1.9
--- llvm/tools/lto/lto.cpp:1.8  Wed Aug 23 11:59:25 2006
+++ llvm/tools/lto/lto.cpp  Tue Sep  5 19:28:22 2006
@@ -266,7 +266,8 @@
 /// Return appropriate LTOStatus.
 enum LTOStatus
 LinkTimeOptimizer::optimizeModules(const std::string OutputFilename,
-   std::vectorconst char * exportList)
+   std::vectorconst char * exportList,
+   std::string targetTriple)
 {
   if (modules.empty())
 return LTO_NO_WORK;
@@ -316,6 +317,8 @@
 return status;
   }
 
+  targetTriple = bigOne-getTargetTriple();
+
   // Run GCC to assemble and link the program into native code.
   //
   // Note:



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/LinkTimeOptimizer.h

2006-09-05 Thread Devang Patel


Changes in directory llvm/include/llvm:

LinkTimeOptimizer.h updated: 1.4 - 1.5
---
Log message:

Extract target triplet from optimized module.
Untabify.


---
Diffs of the changes:  (+7 -6)

 LinkTimeOptimizer.h |   13 +++--
 1 files changed, 7 insertions(+), 6 deletions(-)


Index: llvm/include/llvm/LinkTimeOptimizer.h
diff -u llvm/include/llvm/LinkTimeOptimizer.h:1.4 
llvm/include/llvm/LinkTimeOptimizer.h:1.5
--- llvm/include/llvm/LinkTimeOptimizer.h:1.4   Mon Aug 14 18:27:36 2006
+++ llvm/include/llvm/LinkTimeOptimizer.h   Tue Sep  5 19:28:22 2006
@@ -56,8 +56,8 @@
 void mayBeNotUsed();
 
 LLVMSymbol (enum LTOLinkageTypes lt, GlobalValue *g, const std::string n, 
-   const std::string m) : linkage(lt), gv(g), name(n), 
-   mangledName(m) {}
+const std::string m) : linkage(lt), gv(g), name(n), 
+mangledName(m) {}
 
 const char *getName() { return name.c_str(); }
 const char *getMangledName() { return mangledName.c_str(); }
@@ -82,13 +82,14 @@
 
   public:
 typedef hash_mapconst char*, LLVMSymbol*, hashconst char*, 
-string_compare NameToSymbolMap;
+ string_compare NameToSymbolMap;
 
 enum LTOStatus readLLVMObjectFile(const std::string InputFilename,
- NameToSymbolMap symbols,
- std::setstd::string references);
+  NameToSymbolMap symbols,
+  std::setstd::string references);
 enum LTOStatus optimizeModules(const std::string OutputFilename,
-  std::vectorconst char* exportList);
+   std::vectorconst char* exportList,
+   std::string targetTriple);
 
   private:
 std::vectorModule * modules;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/tools/lto/lto.cpp

2006-09-05 Thread Devang Patel


Changes in directory llvm/tools/lto:

lto.cpp updated: 1.9 - 1.10
---
Log message:

Instead of demangling symbol name by hand, use original name, which was
used to mangle symbol name, directly.


---
Diffs of the changes:  (+4 -2)

 lto.cpp |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)


Index: llvm/tools/lto/lto.cpp
diff -u llvm/tools/lto/lto.cpp:1.9 llvm/tools/lto/lto.cpp:1.10
--- llvm/tools/lto/lto.cpp:1.9  Tue Sep  5 19:28:22 2006
+++ llvm/tools/lto/lto.cpp  Tue Sep  5 19:45:52 2006
@@ -147,6 +147,7 @@
   LLVMSymbol *newSymbol = new LLVMSymbol(lt, v, v-getName(), 
  mangler.getValueName(v));
   symbols[newSymbol-getMangledName()] = newSymbol;
+  allSymbols[newSymbol-getMangledName()] = newSymbol;
 
   for (unsigned count = 0, total = v-getNumOperands(); 
count != total; ++count)
@@ -291,8 +292,9 @@
   // seen by linker.
   for (unsigned i = 0, e = exportList.size(); i != e; ++i) {
 const char *name = exportList[i];
-if (strlen(name)  2  name[0] == '_')
-  exportList[i] = name[1];
+NameToSymbolMap::iterator itr = allSymbols.find(name);
+if (itr != allSymbols.end())
+  exportList[i] = allSymbols[name]-getName();
   }
 
   sys::Path tmpAsmFilePath(/tmp/);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits