move a bunch more integer sizing out of target-specific code into
target indep code.  

Note that this changes functionality on PIC16: it defines __INT_MAX__
correctly for it, and it changes sizeof(long) to 16-bits (to match
the size of pointer).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57132 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 7aad3e8..451c67f 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -115,22 +115,6 @@
   Define(Defs, "_BIG_ENDIAN");
   Define(Defs, "__BIG_ENDIAN__");
 
-  if (is64Bit) {
-    Define(Defs, "__INTMAX_MAX__", "9223372036854775807L");
-    Define(Defs, "__INTMAX_TYPE__", "long int");
-    Define(Defs, "__LONG_MAX__", "9223372036854775807L");
-    Define(Defs, "__PTRDIFF_TYPE__", "long int");
-    Define(Defs, "__UINTMAX_TYPE__", "long unsigned int");
-  } else {
-    Define(Defs, "__INTMAX_MAX__", "9223372036854775807LL");
-    Define(Defs, "__INTMAX_TYPE__", "long long int");
-    Define(Defs, "__LONG_MAX__", "2147483647L");
-    Define(Defs, "__PTRDIFF_TYPE__", "int");
-    Define(Defs, "__UINTMAX_TYPE__", "long long unsigned int");
-  }
-  Define(Defs, "__INT_MAX__", "2147483647");
-  Define(Defs, "__SIZE_TYPE__", "long unsigned int");
-  
   // Subtarget options.
   Define(Defs, "__NATURAL_ALIGNMENT__");
   Define(Defs, "__REGISTER_PREFIX__", "");
@@ -210,22 +194,6 @@
   // Target properties.
   Define(Defs, "__LITTLE_ENDIAN__");
   
-  if (is64Bit) {
-    Define(Defs, "__INTMAX_MAX__", "9223372036854775807L");
-    Define(Defs, "__INTMAX_TYPE__", "long int");
-    Define(Defs, "__LONG_MAX__", "9223372036854775807L");
-    Define(Defs, "__PTRDIFF_TYPE__", "long int");
-    Define(Defs, "__UINTMAX_TYPE__", "long unsigned int");
-  } else {
-    Define(Defs, "__INTMAX_MAX__", "9223372036854775807LL");
-    Define(Defs, "__INTMAX_TYPE__", "long long int");
-    Define(Defs, "__LONG_MAX__", "2147483647L");
-    Define(Defs, "__PTRDIFF_TYPE__", "int");
-    Define(Defs, "__UINTMAX_TYPE__", "long long unsigned int");
-  }
-  Define(Defs, "__SIZE_TYPE__", "long unsigned int");
-  Define(Defs, "__INT_MAX__", "2147483647");
-  
   // Subtarget options.
   Define(Defs, "__nocona");
   Define(Defs, "__nocona__");
@@ -297,15 +265,6 @@
   // Target properties.
   Define(Defs, "__LITTLE_ENDIAN__");
   
-  Define(Defs, "__INTMAX_MAX__", "9223372036854775807LL");
-  Define(Defs, "__INTMAX_TYPE__", "long long int");
-  Define(Defs, "__LONG_MAX__", "2147483647L");
-  Define(Defs, "__PTRDIFF_TYPE__", "int");
-  Define(Defs, "__UINTMAX_TYPE__", "long long unsigned int");
-  Define(Defs, "__SIZE_TYPE__", "long unsigned int");
-  
-  Define(Defs, "__INT_MAX__", "2147483647");
-  
   // Subtarget options.  [hard coded to v6 for now]
   Define(Defs, "__ARM_ARCH_6K__");
   Define(Defs, "__ARMEL__");
@@ -936,6 +895,7 @@
       // FIXME: Is IntAlign really supposed to be 16?  There seems
       // little point on a platform with 8-bit loads.
       IntWidth = IntAlign = LongAlign = LongLongAlign = PointerWidth = 16;
+      LongWidth = 16;
       PointerAlign = 8;
       DescriptionString = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8";
     }