- Jan 22, 2014
-
-
Tim Northover authored
llvm-svn: 199801
-
Anton Yartsev authored
llvm-svn: 199800
-
NAKAMURA Takumi authored
Each functions is exported as "dllexport" in include/clang-c. See also KB835326. llvm-svn: 199799
-
Elena Demikhovsky authored
because vector compare instruction puts result in mask register. llvm-svn: 199798
-
James Molloy authored
MachineCopyPropagation has special logic for removing COPY instructions. It will remove plain COPYs using eraseFromParent(), but if the COPY has imp-defs/imp-uses it will convert it to a KILL, to keep the imp-def around. This actually totally breaks and causes the machine verifier to cry in several cases, one of which being: %RAX<def> = COPY %RCX<kill> %ECX<def> = COPY %EAX<kill>, %RAX<imp-use,kill> These subregister copies are together identified as noops, so are both removed. However, the second one as it has an imp-use gets converted into a kill: %ECX<def> = KILL %EAX<kill>, %RAX<imp-use,kill> As the original COPY has been removed, the verifier goes into tears at the use of undefined EAX and RAX. There are several hacky solutions to this hacky problem (which is all to do with imp-use/def weirdnesses), but the least hacky I've come up with is to *always* remove COPYs by converting to KILLs. KILLs are no-ops to the code generator so the generated code doesn't change (which is why they were partially used in the first place), but using them also keeps the def/use and imp-def/imp-use chains alive: %RAX<def> = KILL %RCX<kill> %ECX<def> = KILL %EAX<kill>, %RAX<imp-use,kill> The patch passes all test cases including the ones that check the removal of MOVs in this circumstance, along with an extra test I added to check subregister behaviour (which made the machine verifier fall over before my patch). The patch also adds some DEBUG() statements because the file hadn't got any. llvm-svn: 199797
-
Daniel Jasper authored
Before: optional really.really.long.and.qualified.type.aaaaaaa .aaaaaaaa another_fiiiiiiiiiiiiiiiiiiiiield = 2; After: optional really.really.long.and.qualified.type.aaaaaaa.aaaaaaaa another_fiiiiiiiiiiiiiiiiiiiiield = 2; llvm-svn: 199796
-
Alp Toker authored
It's guaranteed to be a CXXMethodDecl. llvm-svn: 199795
-
Alp Toker authored
Lift the getFunctionDecl() utility out of the parser into a general Decl::getAsFunction() and use it to simplify other parts of the implementation. Reduce isFunctionOrFunctionTemplate() to a simple type check that works the same was as the other is* functions and move unwrapping of shadowed decls to callers so it doesn't get run twice. Shuffle around canSkipFunctionBody() to reduce virtual dispatch on ASTConsumer. There's no need to query when we already know the body can't be skipped. llvm-svn: 199794
-
Alp Toker authored
This helped catch a couple of bugs locally. llvm-svn: 199793
-
Kevin Qin authored
llvm-svn: 199791
-
Ted Kremenek authored
This involved making CheckReturnStackAddr into a static function, which is now called by a top-level return value checking routine called CheckReturnValExpr. llvm-svn: 199790
-
Andrew Trick authored
llvm-svn: 199788
-
Hans Wennborg authored
We don't currently support this option, but we should be able to parse it. llvm-svn: 199787
-
Venkatraman Govindaraju authored
llvm-svn: 199786
-
NAKAMURA Takumi authored
llvm-svn: 199785
-
Matt Arsenault authored
llvm-svn: 199784
-
Richard Smith authored
llvm-svn: 199783
-
Richard Smith authored
the program, in C++. (We allow the latter as an extension, since we've always permitted it, and GCC does the same, and our supported C++ ABIs don't do anything special in main.) llvm-svn: 199782
-
Venkatraman Govindaraju authored
llvm-svn: 199781
-
Fariborz Jahanian authored
when the deployment target is 10.5. // rdar://15852259 llvm-svn: 199780
-
Richard Smith authored
AST consumers can determine where the destructor name was written. Patch by Olivier Goffart! llvm-svn: 199779
-
Richard Smith authored
language options. This is not really ideal -- we should require the right language options to be passed in, or not require language options to format a name -- but it fixes a number of *obviously* wrong formattings. Patch by Olivier Goffart! llvm-svn: 199778
-
Rafael Espindola authored
llvm-svn: 199777
-
Rafael Espindola authored
llvm-svn: 199776
-
Venkatraman Govindaraju authored
Fixes PR#18521 llvm-svn: 199775
-
Nico Rieck authored
Checking in ActOnVariableDeclarator computes and caches the linkage using the non-deduced auto type which defaults to external linkage. Depending on how the auto type is deduced linkage can change and conflict with the cached linkage, hitting asserts. llvm-svn: 199774
-
Alp Toker authored
Cleanup only. llvm-svn: 199773
-
Richard Smith authored
type if the capture is, actually, by copy. llvm-svn: 199772
-
Chandler Carruth authored
inconsistent results for different orderings of alloca slices. The fundamental issue is that it is just always a mistake to return early from this function. There is no effective early exit to leverage. This patch stops trynig to do so and simplifies the code a bit as a consequence. Original diagnosis and patch by James Molloy with some name tweaks by me in part reflecting feedback from Duncan Smith on the mailing list. llvm-svn: 199771
-
Rafael Espindola authored
The constructors of classes deriving from Binary normally take an error_code as an argument to the constructor. My original intent was to change them to have a trivial constructor and move the initial parsing logic to a static method returning an ErrorOr. I changed my mind because: * A constructor with an error_code out parameter is extremely convenient from the implementation side. We can incrementally construct the object and give up when we find an error. * It is very efficient when constructing on the stack or when there is no error. The only inefficient case is where heap allocating and an error is found (we have to free the memory). The result is that this is a much smaller patch. It just standardizes the create* helpers to return an ErrorOr. Almost no functionality change: The only difference is that this found that we were trying to read past the end of COFF import library but ignoring the error. llvm-svn: 199770
-
- Jan 21, 2014
-
-
Chandler Carruth authored
libc++) when the installation is within the system root. This doesn't really help cross compiles much, but we don't (currently) have a great story around libc++, cross compiles, and who is responsible for building and/or installing the libraries. However, it handles the very common case of non-cross builds in a way entirely consistent with GCC, so I'm hopeful this won't really hose anyone. This is the second patch that I think should be backported to 3.4 to give folks an easy to checkout and install working Clang+libc++ toolchain. llvm-svn: 199769
-
Duncan P. N. Exon Smith authored
Fix a crash in SjLjEHPrepare::lowerIncomingArguments caused by treating VectorType like an aggregate. It's first-class! <rdar://problem/15854596> llvm-svn: 199768
-
Chandler Carruth authored
match the (reasonably prevelant) usage in Clang's test suite and so seems more "canonical". llvm-svn: 199767
-
Andrew Trick authored
Generalized the heuristic that looks at the (very rough) size of the register file before enabling regpressure tracking. llvm-svn: 199766
-
David Majnemer authored
llvm-svn: 199765
-
David Majnemer authored
The MSVC C++ ABI always uses the deduced type in place of auto when generating external names for variables. N.B. MSVC doesn't support C++1y's 'operator auto' and this patch will not give us said functionality. llvm-svn: 199764
-
Hal Finkel authored
For PPC64 SVR (and Darwin), the stores that take byval aggregate parameters from registers into the stack frame had MachinePointerInfo objects with incorrect offsets. These offsets are relative to the object itself, not to the stack frame base. This fixes self hosting on PPC64 when compiling with -enable-aa-sched-mi. llvm-svn: 199763
-
David Blaikie authored
Patch by Alex Wang. llvm-svn: 199762
-
Todd Fiala authored
lldb-gdbserver now takes zero or more --lldb-command {command} options that get executed by the command interpreter prior to starting up a child debuggee process. The short form is -c {command}. This is similar to how lldb-platform works. This command can be used to enable logging in more than just the gdb-remote log channel. Here is an example startup sequence that allows logging of lldb host and process log categories to one file and gdb-remote packets to another file: lldb-gdbserver -c 'log enable -f lgs.log lldb process host' \ -c 'log enable -f lgs_packets.log gdb-remote packets' \ localhost:5432 ./some_exe llvm-svn: 199761
-
Adrian Prantl authored
of the current compilation unit. As a side effect this enables many more LTO uniquing opportunities. This reapplies r199757 with a better testcase. llvm-svn: 199760
-