- Dec 19, 2013
-
-
Matt Arsenault authored
llvm-svn: 197658
-
Saleem Abdulrasool authored
This adds support for the .inst directive. This is an ARM specific directive to indicate an instruction encoded as a constant expression. The major difference between .word, .short, or .byte and .inst is that the latter will be disassembled as an instruction since it does not get flagged as data. llvm-svn: 197657
-
Jason Molenda authored
In those set of patches, Ashok changed Module::ResolveSymbolContextForAddress so that if it failed to find a symbol for a pc, it could back up the pc value by 1 and re-search for a symbol. His change to RegisterContextLLDB.cpp partially duplicates that behavior but it also removes the separate case where we find a Symbol for the pc address but it's the wrong symbol -- we need to handle this as well as the lookup-by-pc-finds-no-symbol case. The most obvious fallout from this regression was that lldb on Mac OS X couldn't backtrace past __assert_rtn() which tail-calls abort(). e.g. (lldb) bt * thread #1: tid = 0x5d6ea1, 0x00007fff8ee80866 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff8ee80866 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8eb5835c libsystem_pthread.dylib`pthread_kill + 92 frame #2: 0x00007fff8852ab1a libsystem_c.dylib`abort + 125 frame #3: 0x00007fff884f49bf libsystem_c.dylib`__assert_rtn + 321 frame #4: 0x0000000100000f2c a.out`main + 124 (lldb) dis -c 3 -s 0x7fff884f49b3 libsystem_c.dylib`__assert_rtn + 309: 0x7fff884f49b3: movq %rax, -0x11b96242(%rip) ; gCRAnnotations + 8 0x7fff884f49ba: callq 0x7fff8854fd2c ; symbol stub for: abort libsystem_c.dylib`basename: 0x7fff884f49bf: pushq %rbp (lldb) in this case, __assert_rtn() is immediately followed by basename() and the changes in r190812 didn't back up the pc value to get the correct function name / unwind info. <rdar://problem/15367233> llvm-svn: 197655
-
Rafael Espindola authored
It is also not clear what the value of the test was. The API is used from existing tools and can (and is) tested with lit. llvm-svn: 197654
-
Josh Magee authored
[stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. This changes the MachineFrameInfo API to use the new SSPLayoutKind information produced by the StackProtector pass (instead of a boolean flag) and updates a few pass dependencies (to preserve the SSP analysis). The stack layout follows the same approach used prior to this change - i.e., only LargeArray stack objects will be placed near the canary and everything else will be laid out normally. After this change, structures containing large arrays will also be placed near the canary - a case previously missed by the old implementation. Out of tree targets will need to update their usage of MachineFrameInfo::CreateStackObject to remove the MayNeedSP argument. The next patch will implement the rules for sspstrong and sspreq. The end goal is to support ssp-strong stack layout rules. WIP. Differential Revision: http://llvm-reviews.chandlerc.com/D2158 llvm-svn: 197653
-
Aaron Ballman authored
Switched code from using hasAttr followed by getAttr to simply call getAttr directly and check the resulting value. No functional changes intended. llvm-svn: 197652
-
Rafael Espindola authored
LLVM already got this right. Found on "Figure 3-1: Scalar Types" on http://sparc.com/standards/psABI3rd.pdf. llvm-svn: 197651
-
Aaron Ballman authored
Switched code from using hasAttr followed by getAttr to simply call getAttr directly and check the resulting value. No functional changes intended. llvm-svn: 197650
-
Aaron Ballman authored
Switched code from using hasAttr followed by getAttr to simply call getAttr directly and check the resulting value. Also fixes some minor formatting issues surrounding the getAttr code. No functional changes intended. llvm-svn: 197649
-
Aaron Ballman authored
Replacing calls to getAttr with calls to hasAttr for clarity. No functional change intended -- this only replaces Boolean uses of getAttr. llvm-svn: 197648
-
Anna Zaks authored
llvm-svn: 197647
-
Rafael Espindola authored
This matches the data in clang which was added by Jakob Stoklund Olesen in r179596. Thanks for erikjv on irc for pointing me to the relevant documents: http://sparc.com/standards/64.psabi.1.35.ps.Z page 25: Every stack frame must be 16-byte aligned. http://sparc.com/standards/psABI3rd.pdf page 3-10: Although the architecture requires only word alignment, software convention and the operating system require every stack frame to be doubleword aligned. I tried to add a test, but it looks like sparc doesn't implement dynamic stack realignment. This will be tested in clang shortly. llvm-svn: 197646
-
Reid Kleckner authored
The inalloca attribute is designed to support passing C++ objects by value in the Microsoft C++ ABI. It behaves the same as byval, except that it always implies that the argument is in memory and that the bytes are never copied. This attribute allows the caller to take the address of an outgoing argument's memory and execute arbitrary code to store into it. This patch adds basic IR support, docs, and verification. It does not attempt to implement any lowering or fix any possibly broken transforms. When this patch lands, a complete description of this feature should appear at http://llvm.org/docs/InAlloca.html . Differential Revision: http://llvm-reviews.chandlerc.com/D2173 llvm-svn: 197645
-
Dmitri Gribenko authored
We started by trying to deserialize decltype(func-param) in a trailing return type, which causes the function parameter decl to be deserialized, which pulls in the function decl, which pulls the function type, which pulls the same decltype() in the return type, and then we crashed. llvm-svn: 197644
-
Dmitri Gribenko authored
llvm-svn: 197643
-
Adrian Prantl authored
llvm-svn: 197642
-
Adrian Prantl authored
rdar://problem/15678916. llvm-svn: 197641
-
Rafael Espindola authored
Patch by Derek Schuff. llvm-svn: 197640
-
Warren Hunt authored
The alignment impact of the virtual bases apperas to be applied in order, rather than up front. This patch adds the new behavior and provides a test case. llvm-svn: 197639
-
Reed Kotler authored
patch r196331. llvm-svn: 197638
-
Aaron Ballman authored
Added a comment about the launch_bounds attribute's AST node being required. Since there were no test cases for the attribute, some have been added. This promptly demonstrated a bug with the semantic handling, which is also fixed. llvm-svn: 197637
-
NAKAMURA Takumi authored
ArchiveFileDescriptorTests: Fix CMake build. Each unit test is expected to have suffix "*Tests" for lit gtest runner to seek one. llvm-svn: 197636
-
NAKAMURA Takumi authored
ArchiveFileDescriptorTests: Resurrect part of r197600, but make it invalidated, to appease buildbots. Please revert this several hours later ;) llvm-svn: 197635
-
rdar://problem/15639995Han Ming Ong authored
Allow the root XPC launcher to launch any target as root. llvm-svn: 197634
-
Yuchen Wu authored
Similar to the file summaries, the function summaries output line, branching and call statistics. The file summaries have been moved outside the initial loop so that all of the function summaries can be outputted before file summaries. Also updated test cases. llvm-svn: 197633
-
Jason Molenda authored
llvm-svn: 197632
-
Jason Molenda authored
<rdar://problem/15694319> llvm-svn: 197631
-
Reed Kotler authored
tail call optimization. Some more work may be needed for indirect calls but this patch fixes the current regression in Prolangc++/trees. S2 optimization as part of the general cleanup and optimization of prolog and epilog was not saving S2 in this case and needed to. llvm-svn: 197630
-
Aaron Ballman authored
Refactor the Microsoft inheritance attribute handling so that it no longer has special treatment. Also fixes a minor bug where the attributes were being parsed as though they were GNU-style attributes when they were in fact keyword attributes. llvm-svn: 197629
-
Rafael Espindola authored
Reviewed by Derek Schuff. llvm-svn: 197628
-
Ted Kremenek authored
Fixes <rdar://problem/15584219> and <rdar://problem/12241361>. This change looks large, but all it does is reuse and consolidate the delayed diagnostic logic for deprecation warnings with unavailability warnings. By doing so, it showed various inconsistencies between the diagnostics, which were close, but not consistent. It also revealed some missing "note:"'s in the deprecated diagnostics that were showing up in the unavailable diagnostics, etc. This change also changes the wording of the core deprecation diagnostics. Instead of saying "function has been explicitly marked deprecated" we now saw "'X' has been been explicitly marked deprecated". It turns out providing a bit more context is useful, and often we got the actual term wrong or it was not very precise (e.g., "function" instead of "destructor"). By just saying the name of the thing that is deprecated/deleted/unavailable we define this issue away. This diagnostic can likely be further wordsmithed to be shorter. llvm-svn: 197627
-
Reid Kleckner authored
llvm-svn: 197626
-
Fariborz Jahanian authored
and methods. rdar://15450637 llvm-svn: 197625
-
Andrew Trick authored
This reverts commit r197466. The MachineCSE fix that required the -mcpu flag has been disabled until more work can be done to fix downstream issues. Adding -mcpu wasn't the right workaround anyway. llvm-svn: 197624
-
Douglas Gregor authored
The problem here is more serious than the fix implies. Adding a field to a class updates the triviality bits for the class (among other things). Failing to require a complete type before adding the field meant that these updates don't happen in the well-formed case where the capture is an uninstantiated class template specialization, leading the lambda itself to be treated as having a trivial copy constructor when it shouldn't. Fixes <rdar://problem/15560464>. llvm-svn: 197623
-
- Dec 18, 2013
-
-
Jason Molenda authored
offsets structure is read & saved in the platform object -- soon we'll be getting more than the queue name offset out of this structure so we'll need to reuse the information in other methods. llvm-svn: 197620
-
Rafael Espindola authored
llvm-svn: 197617
-
Alp Toker authored
Move some of the verifier directives away from the end of the pragma line. This ensures that the diagnostics relate to the trailing token being tested and not the verifier comments which are themselves part of the token stream. llvm-svn: 197616
-
Weiming Zhao authored
Given vsel_cc, op1, op2, since vsel has no LE/LT, to generate vsel for such selection, it needs to inverse cc and swap op1 and op2. To inverse cc, both L/G and E bits should be flipped. llvm-svn: 197615
-
Adrian Prantl authored
member functions. Paired commit with CFE. rdar://problem/15356637 llvm-svn: 197613
-