aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2006-10-18 02:21:12 +0000
committerOwen Anderson <resistor@mac.com>2006-10-18 02:21:12 +0000
commitcf7ff2b4c8c18d67aced9d7ba84482819b38a84b (patch)
tree20ac08acae42a4e16ae1b95c36f6a205fd228817 /lib/AsmParser
parent9935dd919882bec89f185d49655eba9db644e49e (diff)
downloadexternal_llvm-cf7ff2b4c8c18d67aced9d7ba84482819b38a84b.zip
external_llvm-cf7ff2b4c8c18d67aced9d7ba84482819b38a84b.tar.gz
external_llvm-cf7ff2b4c8c18d67aced9d7ba84482819b38a84b.tar.bz2
Add support for the new "target data" information in .ll files. This provides
a better encoding of the targets data layout, rather than trying to guess it from the endianness and pointersize like before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31030 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/llvmAsmParser.y6
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 635318c..af61a67 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -210,6 +210,7 @@ triple { return TRIPLE; }
deplibs { return DEPLIBS; }
endian { return ENDIAN; }
pointersize { return POINTERSIZE; }
+data { return DATA; }
little { return LITTLE; }
big { return BIG; }
volatile { return VOLATILE; }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index e57ca4c..2842f27 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1068,6 +1068,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
%token DEPLIBS CALL TAIL ASM_TOK MODULE SIDEEFFECT
%token CC_TOK CCC_TOK CSRETCC_TOK FASTCC_TOK COLDCC_TOK
%token X86_STDCALLCC_TOK X86_FASTCALLCC_TOK
+%token DATA
%type <UIntVal> OptCallingConv
// Basic Block Terminating Operators
@@ -1873,6 +1874,11 @@ TargetDefinition : ENDIAN '=' BigOrLittle {
free($3);
CHECK_FOR_ERROR
};
+ | DATA '=' STRINGCONSTANT {
+ CurModule.CurrentModule->setDataLayout($3);
+ free($3);
+ CHECK_FOR_ERROR
+ };
LibrariesDefinition : '[' LibList ']';