OSDN Git Service

Merge with LLVM upstream 2011/10/20 (r142530)
authorLogan Chien <loganchien@google.com>
Wed, 19 Oct 2011 16:08:13 +0000 (00:08 +0800)
committerLogan Chien <loganchien@google.com>
Wed, 19 Oct 2011 16:09:35 +0000 (00:09 +0800)
Conflicts:
lib/Support/Unix/Host.inc

Change-Id: Idc00db3b63912dca6348bddd9f8a1af2a8d5d147

1  2 
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
lib/Support/Atomic.cpp
lib/Support/DynamicLibrary.cpp
lib/Support/Unix/PathV2.inc
lib/Target/ARM/ARMCodeEmitter.cpp
utils/TableGen/CodeEmitterGen.cpp

@@@ -47,8 -44,8 +46,9 @@@
  #include "llvm/ADT/Statistic.h"
  #include "llvm/Support/ErrorHandling.h"
  #include "llvm/Support/Format.h"
+ #include "llvm/Support/MathExtras.h"
  #include "llvm/Support/Timer.h"
 +#include <ctype.h>
  using namespace llvm;
  
  static const char *DWARFGroupName = "DWARF Emission";
@@@ -58,11 -53,9 +58,11 @@@ sys::cas_flag sys::CompareAndSwap(volat
  }
  
  sys::cas_flag sys::AtomicIncrement(volatile sys::cas_flag* ptr) {
- #if LLVM_MULTITHREADED==0
+ #if LLVM_HAS_ATOMICS == 0
    ++(*ptr);
    return *ptr;
 +#elif defined(ANDROID_TARGET_BUILD)
 +  return __atomic_inc((volatile int*)ptr);
  #elif defined(__GNUC__)
    return __sync_add_and_fetch(ptr, 1);
  #elif defined(_MSC_VER)
  }
  
  sys::cas_flag sys::AtomicDecrement(volatile sys::cas_flag* ptr) {
- #if LLVM_MULTITHREADED==0
+ #if LLVM_HAS_ATOMICS == 0
    --(*ptr);
    return *ptr;
 +#elif defined(ANDROID_TARGET_BUILD)
 +  return __atomic_dec((volatile int*)ptr);
  #elif defined(__GNUC__)
    return __sync_sub_and_fetch(ptr, 1);
  #elif defined(_MSC_VER)
  }
  
  sys::cas_flag sys::AtomicAdd(volatile sys::cas_flag* ptr, sys::cas_flag val) {
- #if LLVM_MULTITHREADED==0
+ #if LLVM_HAS_ATOMICS == 0
    *ptr += val;
    return *ptr;
 +#elif defined(ANDROID_TARGET_BUILD)
 +  sys::cas_flag original, result;
 +  do {
 +    original = *ptr;
 +    result = original + val;
 +  } while (__atomic_cmpxchg(original, result, (volatile int*)ptr) != original);
 +  return result;
  #elif defined(__GNUC__)
    return __sync_add_and_fetch(ptr, val);
  #elif defined(_MSC_VER)
Simple merge
  #if HAVE_STDIO_H
  #include <stdio.h>
  #endif
+ #if HAVE_LIMITS_H
+ #include <limits.h>
+ #endif
  
 +extern "C" int truncate (const char*, off_t);
 +
  using namespace llvm;
  
  namespace {
Simple merge
Simple merge