<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">That's very strange. I do a configure/make here, and it works, and lots of bots using that were green as well. If there's a case I missed, I'd love to have some help tracking down what it is. Can you try a "make clean" and see if that works? Maybe there's just something stale that the configure portion of the patch needs to clean up.<div><br></div><div>-Jim<br><div><br></div><div><br><div><div>On Oct 1, 2010, at 6:24 PM, Nick Lewycky wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Nope, it broke under a regular configure+make in-srctree incremental build on multiple different machines.<br><br><div class="gmail_quote">On 1 October 2010 18:22, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com">grosbach@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Nick,<br>
<br>
These only break for you under CMake, right? That's the only place I've been able to reproduce failures.<br>
<font color="#888888"><br>
-Jim<br>
</font><div><div></div><div class="h5"><br>
<br>
On Oct 1, 2010, at 6:06 PM, Nick Lewycky wrote:<br>
<br>
> Author: nicholas<br>
> Date: Fri Oct  1 20:06:42 2010<br>
> New Revision: 115393<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=115393&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=115393&view=rev</a><br>
> Log:<br>
> Revert patches r115363 r115367 r115391 due to build breakage:<br>
> llvm[2]: Updated LibDeps.txt because dependencies changed<br>
> llvm[2]: Checking for cyclic dependencies between LLVM libraries.<br>
> <a href="http://find-cycles.pl/" target="_blank">find-cycles.pl</a>: Circular dependency between *.a files:<br>
> <a href="http://find-cycles.pl/" target="_blank">find-cycles.pl</a>:   libLLVMMSP430AsmPrinter.a libLLVMMSP430CodeGen.a<br>
><br>
><br>
> Modified:<br>
>    llvm/trunk/CMakeLists.txt<br>
>    llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt<br>
>    llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp<br>
>    llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h<br>
>    llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile<br>
>    llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp<br>
>    llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp<br>
>    llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h<br>
>    llvm/trunk/lib/Target/MSP430/Makefile<br>
><br>
> Modified: llvm/trunk/CMakeLists.txt<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/CMakeLists.txt (original)<br>
> +++ llvm/trunk/CMakeLists.txt Fri Oct  1 20:06:42 2010<br>
> @@ -323,10 +323,6 @@<br>
>     add_subdirectory(lib/Target/${t}/AsmPrinter)<br>
>     set(LLVM_ENUM_ASM_PRINTERS<br>
>       "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")<br>
> -  if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/InstPrinter/CMakeLists.txt )<br>
> -    add_subdirectory(lib/Target/${t}/InstPrinter)<br>
> -    set(LLVM_ENUM_ASM_PRINTERS<br>
> -      "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")<br>
>   endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )<br>
>   if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmParser/CMakeLists.txt )<br>
>     add_subdirectory(lib/Target/${t}/AsmParser)<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/CMakeLists.txt Fri Oct  1 20:06:42 2010<br>
> @@ -1,6 +0,0 @@<br>
> -include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )<br>
> -<br>
> -add_llvm_library(LLVMMSP430AsmPrinter<br>
> -  MSP430InstPrinter.cpp<br>
> -  )<br>
> -add_dependencies(LLVMMSP430AsmPrinter MSP430CodeGenTable_gen)<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp Fri Oct  1 20:06:42 2010<br>
> @@ -1,114 +0,0 @@<br>
> -//===-- MSP430InstPrinter.cpp - Convert MSP430 MCInst to assembly syntax --===//<br>
> -//<br>
> -//                     The LLVM Compiler Infrastructure<br>
> -//<br>
> -// This file is distributed under the University of Illinois Open Source<br>
> -// License. See LICENSE.TXT for details.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -//<br>
> -// This class prints an MSP430 MCInst to a .s file.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -<br>
> -#define DEBUG_TYPE "asm-printer"<br>
> -#include "MSP430.h"<br>
> -#include "MSP430InstrInfo.h"<br>
> -#include "MSP430InstPrinter.h"<br>
> -#include "llvm/MC/MCInst.h"<br>
> -#include "llvm/MC/MCAsmInfo.h"<br>
> -#include "llvm/MC/MCExpr.h"<br>
> -#include "llvm/Support/ErrorHandling.h"<br>
> -#include "llvm/Support/FormattedStream.h"<br>
> -using namespace llvm;<br>
> -<br>
> -<br>
> -// Include the auto-generated portion of the assembly writer.<br>
> -#include "MSP430GenAsmWriter.inc"<br>
> -<br>
> -void MSP430InstPrinter::printInst(const MCInst *MI, raw_ostream &O) {<br>
> -  printInstruction(MI, O);<br>
> -}<br>
> -<br>
> -void MSP430InstPrinter::printPCRelImmOperand(const MCInst *MI, unsigned OpNo,<br>
> -                                             raw_ostream &O) {<br>
> -  const MCOperand &Op = MI->getOperand(OpNo);<br>
> -  if (Op.isImm())<br>
> -    O << Op.getImm();<br>
> -  else {<br>
> -    assert(Op.isExpr() && "unknown pcrel immediate operand");<br>
> -    O << *Op.getExpr();<br>
> -  }<br>
> -}<br>
> -<br>
> -void MSP430InstPrinter::printOperand(const MCInst *MI, unsigned OpNo,<br>
> -                                     raw_ostream &O, const char *Modifier) {<br>
> -  assert((Modifier == 0 || Modifier[0] == 0) && "No modifiers supported");<br>
> -  const MCOperand &Op = MI->getOperand(OpNo);<br>
> -  if (Op.isReg()) {<br>
> -    O << getRegisterName(Op.getReg());<br>
> -  } else if (Op.isImm()) {<br>
> -    O << '#' << Op.getImm();<br>
> -  } else {<br>
> -    assert(Op.isExpr() && "unknown operand kind in printOperand");<br>
> -    O << '#' << *Op.getExpr();<br>
> -  }<br>
> -}<br>
> -<br>
> -void MSP430InstPrinter::printSrcMemOperand(const MCInst *MI, unsigned OpNo,<br>
> -                                           raw_ostream &O,<br>
> -                                           const char *Modifier) {<br>
> -  const MCOperand &Base = MI->getOperand(OpNo);<br>
> -  const MCOperand &Disp = MI->getOperand(OpNo+1);<br>
> -<br>
> -  // Print displacement first<br>
> -<br>
> -  // If the global address expression is a part of displacement field with a<br>
> -  // register base, we should not emit any prefix symbol here, e.g.<br>
> -  //   mov.w &foo, r1<br>
> -  // vs<br>
> -  //   mov.w glb(r1), r2<br>
> -  // Otherwise (!) msp430-as will silently miscompile the output :(<br>
> -  if (!Base.getReg())<br>
> -    O << '&';<br>
> -<br>
> -  if (Disp.isExpr())<br>
> -    O << *Disp.getExpr();<br>
> -  else {<br>
> -    assert(Disp.isImm() && "Expected immediate in displacement field");<br>
> -    O << Disp.getImm();<br>
> -  }<br>
> -<br>
> -  // Print register base field<br>
> -  if (Base.getReg())<br>
> -    O << '(' << getRegisterName(Base.getReg()) << ')';<br>
> -}<br>
> -<br>
> -void MSP430InstPrinter::printCCOperand(const MCInst *MI, unsigned OpNo,<br>
> -                                       raw_ostream &O) {<br>
> -  unsigned CC = MI->getOperand(OpNo).getImm();<br>
> -<br>
> -  switch (CC) {<br>
> -  default:<br>
> -   llvm_unreachable("Unsupported CC code");<br>
> -   break;<br>
> -  case MSP430CC::COND_E:<br>
> -   O << "eq";<br>
> -   break;<br>
> -  case MSP430CC::COND_NE:<br>
> -   O << "ne";<br>
> -   break;<br>
> -  case MSP430CC::COND_HS:<br>
> -   O << "hs";<br>
> -   break;<br>
> -  case MSP430CC::COND_LO:<br>
> -   O << "lo";<br>
> -   break;<br>
> -  case MSP430CC::COND_GE:<br>
> -   O << "ge";<br>
> -   break;<br>
> -  case MSP430CC::COND_L:<br>
> -   O << 'l';<br>
> -   break;<br>
> -  }<br>
> -}<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h Fri Oct  1 20:06:42 2010<br>
> @@ -1,43 +0,0 @@<br>
> -//===-- MSP430InstPrinter.h - Convert MSP430 MCInst to assembly syntax ----===//<br>
> -//<br>
> -//                     The LLVM Compiler Infrastructure<br>
> -//<br>
> -// This file is distributed under the University of Illinois Open Source<br>
> -// License. See LICENSE.TXT for details.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -//<br>
> -// This class prints a MSP430 MCInst to a .s file.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -<br>
> -#ifndef MSP430INSTPRINTER_H<br>
> -#define MSP430INSTPRINTER_H<br>
> -<br>
> -#include "llvm/MC/MCInstPrinter.h"<br>
> -<br>
> -namespace llvm {<br>
> -  class MCOperand;<br>
> -<br>
> -  class MSP430InstPrinter : public MCInstPrinter {<br>
> -  public:<br>
> -    MSP430InstPrinter(const MCAsmInfo &MAI) : MCInstPrinter(MAI) {<br>
> -    }<br>
> -<br>
> -    virtual void printInst(const MCInst *MI, raw_ostream &O);<br>
> -<br>
> -    // Autogenerated by tblgen.<br>
> -    void printInstruction(const MCInst *MI, raw_ostream &O);<br>
> -    static const char *getRegisterName(unsigned RegNo);<br>
> -<br>
> -    void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,<br>
> -                      const char *Modifier = 0);<br>
> -    void printPCRelImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);<br>
> -    void printSrcMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O,<br>
> -                            const char *Modifier = 0);<br>
> -    void printCCOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);<br>
> -<br>
> -  };<br>
> -}<br>
> -<br>
> -#endif<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/InstPrinter/Makefile Fri Oct  1 20:06:42 2010<br>
> @@ -1,15 +0,0 @@<br>
> -##===- lib/Target/MSP430/AsmPrinter/Makefile ---------------*- Makefile -*-===##<br>
> -#<br>
> -#                     The LLVM Compiler Infrastructure<br>
> -#<br>
> -# This file is distributed under the University of Illinois Open Source<br>
> -# License. See LICENSE.TXT for details.<br>
> -#<br>
> -##===----------------------------------------------------------------------===##<br>
> -LEVEL = ../../../..<br>
> -LIBRARYNAME = LLVMMSP430AsmPrinter<br>
> -<br>
> -# Hack: we need to include 'main' MSP430 target directory to grab private headers<br>
> -CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..<br>
> -<br>
> -include $(LEVEL)/Makefile.common<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/MSP430AsmPrinter.cpp Fri Oct  1 20:06:42 2010<br>
> @@ -1,179 +0,0 @@<br>
> -//===-- MSP430AsmPrinter.cpp - MSP430 LLVM assembly writer ----------------===//<br>
> -//<br>
> -//                     The LLVM Compiler Infrastructure<br>
> -//<br>
> -// This file is distributed under the University of Illinois Open Source<br>
> -// License. See LICENSE.TXT for details.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -//<br>
> -// This file contains a printer that converts from our internal representation<br>
> -// of machine-dependent LLVM code to the MSP430 assembly language.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -<br>
> -#define DEBUG_TYPE "asm-printer"<br>
> -#include "MSP430.h"<br>
> -#include "MSP430InstrInfo.h"<br>
> -#include "InstPrinter/MSP430InstPrinter.h"<br>
> -#include "MSP430MCAsmInfo.h"<br>
> -#include "MSP430MCInstLower.h"<br>
> -#include "MSP430TargetMachine.h"<br>
> -#include "llvm/Constants.h"<br>
> -#include "llvm/DerivedTypes.h"<br>
> -#include "llvm/Module.h"<br>
> -#include "llvm/Assembly/Writer.h"<br>
> -#include "llvm/CodeGen/AsmPrinter.h"<br>
> -#include "llvm/CodeGen/MachineModuleInfo.h"<br>
> -#include "llvm/CodeGen/MachineFunctionPass.h"<br>
> -#include "llvm/CodeGen/MachineConstantPool.h"<br>
> -#include "llvm/CodeGen/MachineInstr.h"<br>
> -#include "llvm/MC/MCInst.h"<br>
> -#include "llvm/MC/MCStreamer.h"<br>
> -#include "llvm/MC/MCSymbol.h"<br>
> -#include "llvm/Target/Mangler.h"<br>
> -#include "llvm/Target/TargetData.h"<br>
> -#include "llvm/Target/TargetLoweringObjectFile.h"<br>
> -#include "llvm/Target/TargetRegistry.h"<br>
> -#include "llvm/Support/raw_ostream.h"<br>
> -using namespace llvm;<br>
> -<br>
> -namespace {<br>
> -  class MSP430AsmPrinter : public AsmPrinter {<br>
> -  public:<br>
> -    MSP430AsmPrinter(TargetMachine &TM, MCStreamer &Streamer)<br>
> -      : AsmPrinter(TM, Streamer) {}<br>
> -<br>
> -    virtual const char *getPassName() const {<br>
> -      return "MSP430 Assembly Printer";<br>
> -    }<br>
> -<br>
> -    void printOperand(const MachineInstr *MI, int OpNum,<br>
> -                      raw_ostream &O, const char* Modifier = 0);<br>
> -    void printSrcMemOperand(const MachineInstr *MI, int OpNum,<br>
> -                            raw_ostream &O);<br>
> -    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,<br>
> -                         unsigned AsmVariant, const char *ExtraCode,<br>
> -                         raw_ostream &O);<br>
> -    bool PrintAsmMemoryOperand(const MachineInstr *MI,<br>
> -                               unsigned OpNo, unsigned AsmVariant,<br>
> -                               const char *ExtraCode, raw_ostream &O);<br>
> -    void EmitInstruction(const MachineInstr *MI);<br>
> -  };<br>
> -} // end of anonymous namespace<br>
> -<br>
> -<br>
> -void MSP430AsmPrinter::printOperand(const MachineInstr *MI, int OpNum,<br>
> -                                    raw_ostream &O, const char *Modifier) {<br>
> -  const MachineOperand &MO = MI->getOperand(OpNum);<br>
> -  switch (MO.getType()) {<br>
> -  default: assert(0 && "Not implemented yet!");<br>
> -  case MachineOperand::MO_Register:<br>
> -    O << MSP430InstPrinter::getRegisterName(MO.getReg());<br>
> -    return;<br>
> -  case MachineOperand::MO_Immediate:<br>
> -    if (!Modifier || strcmp(Modifier, "nohash"))<br>
> -      O << '#';<br>
> -    O << MO.getImm();<br>
> -    return;<br>
> -  case MachineOperand::MO_MachineBasicBlock:<br>
> -    O << *MO.getMBB()->getSymbol();<br>
> -    return;<br>
> -  case MachineOperand::MO_GlobalAddress: {<br>
> -    bool isMemOp  = Modifier && !strcmp(Modifier, "mem");<br>
> -    uint64_t Offset = MO.getOffset();<br>
> -<br>
> -    // If the global address expression is a part of displacement field with a<br>
> -    // register base, we should not emit any prefix symbol here, e.g.<br>
> -    //   mov.w &foo, r1<br>
> -    // vs<br>
> -    //   mov.w glb(r1), r2<br>
> -    // Otherwise (!) msp430-as will silently miscompile the output :(<br>
> -    if (!Modifier || strcmp(Modifier, "nohash"))<br>
> -      O << (isMemOp ? '&' : '#');<br>
> -    if (Offset)<br>
> -      O << '(' << Offset << '+';<br>
> -<br>
> -    O << *Mang->getSymbol(MO.getGlobal());<br>
> -<br>
> -    if (Offset)<br>
> -      O << ')';<br>
> -<br>
> -    return;<br>
> -  }<br>
> -  case MachineOperand::MO_ExternalSymbol: {<br>
> -    bool isMemOp  = Modifier && !strcmp(Modifier, "mem");<br>
> -    O << (isMemOp ? '&' : '#');<br>
> -    O << MAI->getGlobalPrefix() << MO.getSymbolName();<br>
> -    return;<br>
> -  }<br>
> -  }<br>
> -}<br>
> -<br>
> -void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,<br>
> -                                          raw_ostream &O) {<br>
> -  const MachineOperand &Base = MI->getOperand(OpNum);<br>
> -  const MachineOperand &Disp = MI->getOperand(OpNum+1);<br>
> -<br>
> -  // Print displacement first<br>
> -<br>
> -  // Imm here is in fact global address - print extra modifier.<br>
> -  if (Disp.isImm() && !Base.getReg())<br>
> -    O << '&';<br>
> -  printOperand(MI, OpNum+1, O, "nohash");<br>
> -<br>
> -  // Print register base field<br>
> -  if (Base.getReg()) {<br>
> -    O << '(';<br>
> -    printOperand(MI, OpNum, O);<br>
> -    O << ')';<br>
> -  }<br>
> -}<br>
> -<br>
> -/// PrintAsmOperand - Print out an operand for an inline asm expression.<br>
> -///<br>
> -bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,<br>
> -                                       unsigned AsmVariant,<br>
> -                                       const char *ExtraCode, raw_ostream &O) {<br>
> -  // Does this asm operand have a single letter operand modifier?<br>
> -  if (ExtraCode && ExtraCode[0])<br>
> -    return true; // Unknown modifier.<br>
> -<br>
> -  printOperand(MI, OpNo, O);<br>
> -  return false;<br>
> -}<br>
> -<br>
> -bool MSP430AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,<br>
> -                                             unsigned OpNo, unsigned AsmVariant,<br>
> -                                             const char *ExtraCode,<br>
> -                                             raw_ostream &O) {<br>
> -  if (ExtraCode && ExtraCode[0]) {<br>
> -    return true; // Unknown modifier.<br>
> -  }<br>
> -  printSrcMemOperand(MI, OpNo, O);<br>
> -  return false;<br>
> -}<br>
> -<br>
> -//===----------------------------------------------------------------------===//<br>
> -void MSP430AsmPrinter::EmitInstruction(const MachineInstr *MI) {<br>
> -  MSP430MCInstLower MCInstLowering(OutContext, *Mang, *this);<br>
> -<br>
> -  MCInst TmpInst;<br>
> -  MCInstLowering.Lower(MI, TmpInst);<br>
> -  OutStreamer.EmitInstruction(TmpInst);<br>
> -}<br>
> -<br>
> -static MCInstPrinter *createMSP430MCInstPrinter(const Target &T,<br>
> -                                                unsigned SyntaxVariant,<br>
> -                                                const MCAsmInfo &MAI) {<br>
> -  if (SyntaxVariant == 0)<br>
> -    return new MSP430InstPrinter(MAI);<br>
> -  return 0;<br>
> -}<br>
> -<br>
> -// Force static initialization.<br>
> -extern "C" void LLVMInitializeMSP430AsmPrinter() {<br>
> -  RegisterAsmPrinter<MSP430AsmPrinter> X(TheMSP430Target);<br>
> -  TargetRegistry::RegisterMCInstPrinter(TheMSP430Target,<br>
> -                                        createMSP430MCInstPrinter);<br>
> -}<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.cpp Fri Oct  1 20:06:42 2010<br>
> @@ -1,150 +0,0 @@<br>
> -//===-- MSP430MCInstLower.cpp - Convert MSP430 MachineInstr to an MCInst---===//<br>
> -//<br>
> -//                     The LLVM Compiler Infrastructure<br>
> -//<br>
> -// This file is distributed under the University of Illinois Open Source<br>
> -// License. See LICENSE.TXT for details.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -//<br>
> -// This file contains code to lower MSP430 MachineInstrs to their corresponding<br>
> -// MCInst records.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -<br>
> -#include "MSP430MCInstLower.h"<br>
> -#include "llvm/CodeGen/AsmPrinter.h"<br>
> -#include "llvm/CodeGen/MachineBasicBlock.h"<br>
> -#include "llvm/CodeGen/MachineInstr.h"<br>
> -#include "llvm/MC/MCAsmInfo.h"<br>
> -#include "llvm/MC/MCContext.h"<br>
> -#include "llvm/MC/MCExpr.h"<br>
> -#include "llvm/MC/MCInst.h"<br>
> -#include "llvm/Target/Mangler.h"<br>
> -#include "llvm/Support/raw_ostream.h"<br>
> -#include "llvm/Support/ErrorHandling.h"<br>
> -#include "llvm/ADT/SmallString.h"<br>
> -using namespace llvm;<br>
> -<br>
> -MCSymbol *MSP430MCInstLower::<br>
> -GetGlobalAddressSymbol(const MachineOperand &MO) const {<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: llvm_unreachable("Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  return Printer.Mang->getSymbol(MO.getGlobal());<br>
> -}<br>
> -<br>
> -MCSymbol *MSP430MCInstLower::<br>
> -GetExternalSymbolSymbol(const MachineOperand &MO) const {<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: assert(0 && "Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  return Printer.GetExternalSymbolSymbol(MO.getSymbolName());<br>
> -}<br>
> -<br>
> -MCSymbol *MSP430MCInstLower::<br>
> -GetJumpTableSymbol(const MachineOperand &MO) const {<br>
> -  SmallString<256> Name;<br>
> -  raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "JTI"<br>
> -                            << Printer.getFunctionNumber() << '_'<br>
> -                            << MO.getIndex();<br>
> -<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: llvm_unreachable("Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  // Create a symbol for the name.<br>
> -  return Ctx.GetOrCreateSymbol(Name.str());<br>
> -}<br>
> -<br>
> -MCSymbol *MSP430MCInstLower::<br>
> -GetConstantPoolIndexSymbol(const MachineOperand &MO) const {<br>
> -  SmallString<256> Name;<br>
> -  raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "CPI"<br>
> -                            << Printer.getFunctionNumber() << '_'<br>
> -                            << MO.getIndex();<br>
> -<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: llvm_unreachable("Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  // Create a symbol for the name.<br>
> -  return Ctx.GetOrCreateSymbol(Name.str());<br>
> -}<br>
> -<br>
> -MCSymbol *MSP430MCInstLower::<br>
> -GetBlockAddressSymbol(const MachineOperand &MO) const {<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: assert(0 && "Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  return Printer.GetBlockAddressSymbol(MO.getBlockAddress());<br>
> -}<br>
> -<br>
> -MCOperand MSP430MCInstLower::<br>
> -LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const {<br>
> -  // FIXME: We would like an efficient form for this, so we don't have to do a<br>
> -  // lot of extra uniquing.<br>
> -  const MCExpr *Expr = MCSymbolRefExpr::Create(Sym, Ctx);<br>
> -<br>
> -  switch (MO.getTargetFlags()) {<br>
> -  default: llvm_unreachable("Unknown target flag on GV operand");<br>
> -  case 0: break;<br>
> -  }<br>
> -<br>
> -  if (!MO.isJTI() && MO.getOffset())<br>
> -    Expr = MCBinaryExpr::CreateAdd(Expr,<br>
> -                                   MCConstantExpr::Create(MO.getOffset(), Ctx),<br>
> -                                   Ctx);<br>
> -  return MCOperand::CreateExpr(Expr);<br>
> -}<br>
> -<br>
> -void MSP430MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {<br>
> -  OutMI.setOpcode(MI->getOpcode());<br>
> -<br>
> -  for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {<br>
> -    const MachineOperand &MO = MI->getOperand(i);<br>
> -<br>
> -    MCOperand MCOp;<br>
> -    switch (MO.getType()) {<br>
> -    default:<br>
> -      MI->dump();<br>
> -      assert(0 && "unknown operand type");<br>
> -    case MachineOperand::MO_Register:<br>
> -      // Ignore all implicit register operands.<br>
> -      if (MO.isImplicit()) continue;<br>
> -      MCOp = MCOperand::CreateReg(MO.getReg());<br>
> -      break;<br>
> -    case MachineOperand::MO_Immediate:<br>
> -      MCOp = MCOperand::CreateImm(MO.getImm());<br>
> -      break;<br>
> -    case MachineOperand::MO_MachineBasicBlock:<br>
> -      MCOp = MCOperand::CreateExpr(MCSymbolRefExpr::Create(<br>
> -                         MO.getMBB()->getSymbol(), Ctx));<br>
> -      break;<br>
> -    case MachineOperand::MO_GlobalAddress:<br>
> -      MCOp = LowerSymbolOperand(MO, GetGlobalAddressSymbol(MO));<br>
> -      break;<br>
> -    case MachineOperand::MO_ExternalSymbol:<br>
> -      MCOp = LowerSymbolOperand(MO, GetExternalSymbolSymbol(MO));<br>
> -      break;<br>
> -    case MachineOperand::MO_JumpTableIndex:<br>
> -      MCOp = LowerSymbolOperand(MO, GetJumpTableSymbol(MO));<br>
> -      break;<br>
> -    case MachineOperand::MO_ConstantPoolIndex:<br>
> -      MCOp = LowerSymbolOperand(MO, GetConstantPoolIndexSymbol(MO));<br>
> -      break;<br>
> -    case MachineOperand::MO_BlockAddress:<br>
> -      MCOp = LowerSymbolOperand(MO, GetBlockAddressSymbol(MO));<br>
> -    }<br>
> -<br>
> -    OutMI.addOperand(MCOp);<br>
> -  }<br>
> -}<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/MSP430MCInstLower.h Fri Oct  1 20:06:42 2010<br>
> @@ -1,50 +0,0 @@<br>
> -//===-- MSP430MCInstLower.h - Lower MachineInstr to MCInst ----------------===//<br>
> -//<br>
> -//                     The LLVM Compiler Infrastructure<br>
> -//<br>
> -// This file is distributed under the University of Illinois Open Source<br>
> -// License. See LICENSE.TXT for details.<br>
> -//<br>
> -//===----------------------------------------------------------------------===//<br>
> -<br>
> -#ifndef MSP430_MCINSTLOWER_H<br>
> -#define MSP430_MCINSTLOWER_H<br>
> -<br>
> -#include "llvm/Support/Compiler.h"<br>
> -<br>
> -namespace llvm {<br>
> -  class AsmPrinter;<br>
> -  class MCAsmInfo;<br>
> -  class MCContext;<br>
> -  class MCInst;<br>
> -  class MCOperand;<br>
> -  class MCSymbol;<br>
> -  class MachineInstr;<br>
> -  class MachineModuleInfoMachO;<br>
> -  class MachineOperand;<br>
> -  class Mangler;<br>
> -<br>
> -  /// MSP430MCInstLower - This class is used to lower an MachineInstr<br>
> -  /// into an MCInst.<br>
> -class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower {<br>
> -  MCContext &Ctx;<br>
> -  Mangler &Mang;<br>
> -<br>
> -  AsmPrinter &Printer;<br>
> -public:<br>
> -  MSP430MCInstLower(MCContext &ctx, Mangler &mang, AsmPrinter &printer)<br>
> -    : Ctx(ctx), Mang(mang), Printer(printer) {}<br>
> -  void Lower(const MachineInstr *MI, MCInst &OutMI) const;<br>
> -<br>
> -  MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;<br>
> -<br>
> -  MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const;<br>
> -  MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;<br>
> -  MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const;<br>
> -  MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const;<br>
> -  MCSymbol *GetBlockAddressSymbol(const MachineOperand &MO) const;<br>
> -};<br>
> -<br>
> -}<br>
> -<br>
> -#endif<br>
><br>
> Modified: llvm/trunk/lib/Target/MSP430/Makefile<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/Makefile?rev=115393&r1=115392&r2=115393&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/Makefile?rev=115393&r1=115392&r2=115393&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/MSP430/Makefile (original)<br>
> +++ llvm/trunk/lib/Target/MSP430/Makefile Fri Oct  1 20:06:42 2010<br>
> @@ -18,7 +18,7 @@<br>
>               MSP430GenDAGISel.inc MSP430GenCallingConv.inc \<br>
>               MSP430GenSubtarget.inc<br>
><br>
> -DIRS = InstPrinter TargetInfo<br>
> +DIRS = AsmPrinter TargetInfo<br>
><br>
> include $(LEVEL)/Makefile.common<br>
><br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br>
</blockquote></div><br></div></div></body></html>