- Oct 05, 2013
-
-
Benjamin Kramer authored
The most likely case where this error happens is when the user specifies too many register operands. Don't make it look like an internal LLVM bug when we can see that the error is coming from an inline asm instruction. For other instructions we keep the "ran out of registers" error. llvm-svn: 192041
-
Craig Topper authored
llvm-svn: 192040
-
Craig Topper authored
llvm-svn: 192039
-
Craig Topper authored
llvm-svn: 192037
-
Rafael Espindola authored
When MC was first added, targets could use hasRawTextSupport to keep features working before they were added to the MC interface. The design goal of MC is to provide an uniform api for printing assembly and object files. Short of relaxations and other corner cases, a object file is just another representation of the assembly. It was never the intention that targets would keep doing things like if (hasRawTextSupport()) Set flags in one way. else Set flags in another way. When they do that they create two code paths and the object file is no longer just another representation of the assembly. This also then requires testing with llc -filetype=obj, which is extremelly brittle. This patch removes some of these hacks by replacing them with smaller ones. The ARM flag setting is trivial, so I just moved it to the constructor. For Mips, the patch adds two temporary hack directives that allow the assembly to represent the same things as the object file was already able to. The hope is that the mips developers will replace the hack directives with the same ones that gas uses and drop the -print-hack-directives flag. I will also try to implement a target streamer interface, so that we can move this out of the common code. In summary, for any new work, two rules of the thumb are * Don't use "llc -filetype=obj" in tests. * Don't add calls to hasRawTextSupport. llvm-svn: 192035
-
Benjamin Kramer authored
llvm-svn: 192031
-
Jiangning Liu authored
llvm-svn: 192028
-
Craig Topper authored
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. llvm-svn: 192026
-
Rafael Espindola authored
llvm-svn: 192025
-
Venkatraman Govindaraju authored
llvm-svn: 192023
-
Andrew Kaylor authored
llvm-svn: 192022
-
Andrew Kaylor authored
llvm-svn: 192021
-
Andrew Kaylor authored
Patch by Ashok Thirumurthi llvm-svn: 192020
-
Manman Ren authored
is updated to use DITypeRef. Move isUnsignedDIType and getOriginalTypeSize from DebugInfo.h to be static helper functions in DwarfCompileUnit. We already have a static helper function "isTypeSigned" in DwarfCompileUnit, and a pointer to DwarfDebug is added to resolve the derived-from field. All three functions need to go across link for derived-from fields, so we need to get hold of a type identifier map. A pointer to DwarfDebug is also added to DbgVariable in order to resolve the derived-from field. Debug info verifier is updated to check a derived-from field is a TypeRef. Verifier will not go across link for derived-from fields, in debug info finder, we go across the link to add derived-from fields to types. Function getDICompositeType is only used by dragonegg and since dragonegg does not generate identifier for types, we use an empty map to resolve the derived-from field. When printing a derived-from field, we use DITypeRef::getName to either return the type identifier or getName of the DIType. A paired commit at clang is required due to changes to DIBuilder. llvm-svn: 192018
-
Eric Christopher authored
llvm-svn: 192017
-
Eric Christopher authored
llvm-svn: 192016
-
Venkatraman Govindaraju authored
llvm-svn: 192015
-
Eric Christopher authored
llvm-svn: 192014
-
Adrian Prantl authored
pointed to by a dbg_value belonging to a function argument is eliminated during instruction selection. rdar://problem/15094721. llvm-svn: 192011
-
Eric Christopher authored
llvm-svn: 192009
-
Venkatraman Govindaraju authored
llvm-svn: 192006
-
David Blaikie authored
llvm-svn: 192005
-
Eric Christopher authored
llvm-svn: 192004
-
Eric Christopher authored
llvm-svn: 192003
-
Eric Christopher authored
scope, pass a scope. llvm-svn: 192002
-
Hal Finkel authored
UpdatePHINodes has an optimization to reuse an existing PHI node, where it first deletes all of its entries and then replaces them. Unfortunately, in the case where we had duplicate predecessors (which are allowed so long as the associated PHI entries have the same value), the loop removing the existing PHI entries from the to-be-reused PHI would assert (if that PHI was not the one which had the duplicates). llvm-svn: 192001
-
David Blaikie authored
llvm-svn: 192000
-
Eric Christopher authored
llvm-svn: 191999
-
David Blaikie authored
* two actually due to some weird template thing... investigating that. llvm-svn: 191998
-
Eric Christopher authored
llvm-svn: 191997
-
Eric Christopher authored
llvm-svn: 191995
-
Eric Christopher authored
llvm-svn: 191994
-
Jack Carter authored
llvm-svn: 191993
-
Jack Carter authored
llvm-svn: 191992
-
Eric Christopher authored
This has the side effect of using DW_FORM_flag_present on dwarf4 and above. llvm-svn: 191991
-
Eric Christopher authored
a flag. No functional change. llvm-svn: 191990
-
Hal Finkel authored
DAGCombiner::visitFP_EXTEND will apply the following transformation: fold (fpext (load x)) -> (fpext (fptrunc (extload x))) but the implementation does not handle indexed loads (pre/post inc.), but did not specifically ignore them either (unlike for extending loads, which it already ignored), causing an assert when the transformation was applied to an indexed load. This is the minimal fix for correctness (causing the transformation to be skipped for indexed loads). Unfortunately, I don't have an in-tree test case. llvm-svn: 191989
-
Reed Kotler authored
llvm-svn: 191986
-
- Oct 04, 2013
-
-
Rafael Espindola authored
We were writing in text mode. Patch by Greg Bedwell. llvm-svn: 191985
-
Jack Carter authored
This patch handles LLVM standalone assembler (llvm-mc) ELF flag setting based on input file directive processing. Mips assembly requires processing inline directives that directly and indirectly affect the output ELF header flags. This patch handles one ".abicalls". To process these directives we are following the model the code generator uses by storing state in a container as we go through processing and when we detect the end of input file processing, AsmParser is notified and we update the ELF header flags through a MipsELFStreamer method with a call from MCTargetAsmParser::emitEndOfAsmFile(MCStreamer &OutStreamer). This patch will allow other targets the same functionality. Jack llvm-svn: 191982
-