- Oct 01, 2013
-
-
Manman Ren authored
and it is shared across CUs. We add a few maps in DwarfDebug to map MDNodes for the type system to the corresponding DIEs: MDTypeNodeToDieMap, MDSPNodeToDieMap, and MDStaticMemberNodeToDieMap. These DIEs can be shared across CUs, that is why we keep the maps in DwarfDebug instead of CompileUnit. Sometimes, when we try to add an attribute to a DIE, the DIE is not yet added to its owner yet, so we don't know whether we should use ref_addr or ref4. We create a worklist that will be processed during finalization to add attributes with the correct form (ref_addr or ref4). We add addDIEEntry to DwarfDebug to be a wrapper around DIE->addValue. It checks whether we know the correct form, if not, we update the worklist (DIEEntryWorklist). A testing case is added to show that we only create a single DIE for a type MDNode and we use ref_addr to refer to the type DIE. llvm-svn: 191792
-
Vincent Lejeune authored
llvm-svn: 191790
-
Vincent Lejeune authored
llvm-svn: 191789
-
Vincent Lejeune authored
llvm-svn: 191788
-
Quentin Colombet authored
that each comment ends with a newline to match the definition in the header file. This is part of <rdar://problem/14687488>. llvm-svn: 191787
-
Matt Arsenault authored
It's silly to merge functions like these: define void @foo(i32 %x) { ret void } define void @bar(i32 %x) { ret void } to get define void @bar(i32) { tail call void @foo(i32 %0) ret void } llvm-svn: 191786
-
Rafael Espindola authored
The use of these features in clang has been reverted. llvm-svn: 191785
-
Preston Gurd authored
Thanks for Dimitry Andric, Rafael Espindola, and Benjamin Kramer for providing and progressively reducing the test case! llvm-svn: 191782
-
Alexey Samsonov authored
Parsing .debug_aranges section now takes O(nlogn) operations instead of O(n^2), where "n" is the number of address ranges. With this change, the time required to symbolize an address from a random large Clang-generated binary drops from 165 seconds to 1.5 seconds. No functionality change. llvm-svn: 191781
-
Andrew Kaylor authored
llvm-svn: 191780
-
Alexey Samsonov authored
llvm-svn: 191779
-
Alexey Samsonov authored
llvm-svn: 191778
-
Richard Sandiford authored
llvm-svn: 191777
-
Richard Sandiford authored
There are no corresponding patterns for small immediates because they would prevent the use of fused compare-and-branch instructions. llvm-svn: 191775
-
Richard Sandiford authored
llvm-svn: 191774
-
Richard Sandiford authored
llvm-svn: 191773
-
Richard Sandiford authored
This involves using RISB[LH]G, whereas the equivalent z10 optimization uses RISBG. llvm-svn: 191770
-
Richard Sandiford authored
As the comment says, we always want to use STOC for 32-bit stores. llvm-svn: 191767
-
Tim Northover authored
This function-attribute modifies the callee-saved register list and function epilogue (specifically the return instruction) so that a routine is suitable for use as an interrupt-handler of the specified type without disrupting user-mode applications. rdar://problem/14207019 llvm-svn: 191766
-
Richard Sandiford authored
llvm-svn: 191765
-
Richard Sandiford authored
Floats are stored in the high 32 bits of an FPR, and the only GPR<->FPR transfers are full-register transfers. This patch optimizes GPR<->FPR float transfers when the high word of a GPR is directly accessible. llvm-svn: 191764
-
Tareq A. Siraj authored
- New ProcessInfo class to encapsulate information about child processes. - Generalized the Wait() to support non-blocking wait on child processes. - ExecuteNoWait() now returns a ProcessInfo object with information about the launched child. Users will be able to use this object to perform non-blocking wait. - ExecuteNoWait() now accepts an ExecutionFailed param that tells if execution failed or not. These changes will allow users to implement basic process parallel tools. Differential Revision: http://llvm-reviews.chandlerc.com/D1728 llvm-svn: 191763
-
Richard Sandiford authored
llvm-svn: 191762
-
Richard Sandiford authored
llvm-svn: 191759
-
Rafael Espindola authored
Patch by Alp Toker. llvm-svn: 191757
-
Richard Sandiford authored
llvm-svn: 191755
-
Richard Sandiford authored
llvm-svn: 191753
-
Sylvestre Ledru authored
llvm-svn: 191752
-
Richard Sandiford authored
llvm-svn: 191751
-
Richard Sandiford authored
Similar to low words, we can use the shorter LLIHL and LLIHH if it turns out that the other half of the GR64 isn't live. llvm-svn: 191750
-
Joey Gouly authored
Pointed out by Joerg. llvm-svn: 191749
-
Matheus Almeida authored
llvm-svn: 191748
-
Richard Sandiford authored
llvm-svn: 191746
-
Joey Gouly authored
This also removes the restriction on the immediate field of the 'hint' instruction. llvm-svn: 191744
-
Richard Sandiford authored
llvm-svn: 191743
-
Richard Sandiford authored
llvm-svn: 191742
-
Benjamin Kramer authored
PR17425. llvm-svn: 191741
-
Richard Sandiford authored
llvm-svn: 191740
-
Richard Sandiford authored
This just adds the basics necessary for allocating the upper words to virtual registers (move, load and store). The move support is parameterised in a way that makes it easy to handle zero extensions, but the associated zero-extend patterns are added by a later patch. The easiest way of testing this seemed to be add a new "h" register constraint for high words. I don't expect the constraint to be useful in real inline asms, but it should work, so I didn't try to hide it behind an option. llvm-svn: 191739
-
Richard Sandiford authored
Originally committed as r191661, but reverted because it changed the matching order of comparisons on some hosts. That should have been fixed by r191735. llvm-svn: 191738
-