- Oct 05, 2013
-
-
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
-
David Blaikie authored
* two actually due to some weird template thing... investigating that. llvm-svn: 191998
-
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
-
-
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
-
Akira Hatanaka authored
instructions in delay slots along with the original branch instructions. llvm-svn: 191978
-
Arnold Schwaighofer authored
Sort the operands of the other entries in the current vectorization root according to the first entry's operands opcodes. %conv0 = uitofp ... %load0 = load float ... = fmul %conv0, %load0 = fmul %load0, %conv1 = fmul %load0, %conv2 Make sure that we recursively vectorize <%conv0, %conv1, %conv2> and <%load0, %load0, %load0>. This makes it more likely to obtain vectorizable trees. We have to be careful when we sort that we don't destroy 'good' existing ordering implied by source order. radar://15080067 llvm-svn: 191977
-
Eric Christopher authored
way for all platforms. llvm-svn: 191975
-
Eric Christopher authored
on platforms with relocations in debug info and also temporarily revert r191800 due to conflicts with the revert of r191792. llvm-svn: 191967
-
Matthias Braun authored
llvm-svn: 191966
-
Matthias Braun authored
llvm-svn: 191965
-
Matthias Braun authored
llvm-svn: 191964
-
Matthias Braun authored
optimizeSelect folds (predicated) copy instructions, it must not ignore the original register class of the operand when replacing the register with the copies dest register. llvm-svn: 191963
-
Matthias Braun authored
The jump doesn't really kill the registers, the following call does but we never get back anyway. This avoids some verify-machineinstrs problems when TAILJUMPs are if-converted. llvm-svn: 191962
-
Matthias Braun authored
Copy over the whole register machine operand instead of creating a new one with an incomplete set of flags. llvm-svn: 191961
-
Jiangning Liu authored
llvm-svn: 191944
-
Craig Topper authored
llvm-svn: 191941
-
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: 191940
-
David Blaikie authored
In the case (shown in the attached test) where a member function definition was emitted into debug info the following could occur: 1) build the debug info for the member function definition 2) in (1), build the debug info for the member function declaration 3) construct and add the member function declaration DIE 4) add it to its context 5) build its context (the type it is a member of) 6) construct the members and add them to the type 7) except don't add member functions because "getOrCreateSubprogram" adds the function to its parent anyway 8) except we're only partway through building this subprogram declaration so it hasn't been added yet - but we returned the partially constructed DIE (since it's already in the MDNode->DIE mapping to avoid infinitely recursing trying to create the member function DIE) 9) once the type is constructed, add the member function to it 10) now the members are out of order (the member function being defined is listed as the last member, even though it was declared as the first) To avoid this, construct the context of the subprogram DIE before we query to see if it exists. That way we never end up creating it before creating its context and ending up in this situation. Alternatively, the type construction that visits/builds all the members could call something like getOrCreateSubprogram, but that doesn't ever do the "add to context" step. Then the type building code would always be responsible for adding members (and the subprogram "addToContextDIE" would no-op because the context building would have added the subprogram declaration to the type/context DIE already). (the test cases updated were overly-sensitive to offsets or abbreviation numbers. We don't have a nice way to make these tests more robust as yet - multiline FileCheck matches would be required) llvm-svn: 191939
-
Andrew Kaylor authored
llvm-svn: 191938
-
Richard Mitton authored
Changed the dwarf aranges code to not use getLabelEndName, as it turns out it's not reliable to call that given user-defined section names. Section names can have characters in that aren't representable as symbol names. The dwarf-aranges test case has been updated to include a special character, to check this. This fixes pr17416. llvm-svn: 191932
-
- Oct 03, 2013
-
-
Owen Anderson authored
Pull fptrunc's upwards through selects when one of the select's selectands was a constant. This has a number of benefits, including producing small immediates (easier to materialize, smaller constant pools) as well as being more likely to allow the fptrunc to fuse with a preceding instruction (truncating selects are unusual). llvm-svn: 191929
-