- Jul 16, 2012
-
-
Daniel Jasper authored
llvm-svn: 160264
-
Daniel Jasper authored
llvm-svn: 160263
-
Alexey Samsonov authored
[Sanitizer] implement straightforward nlogn sorting, as qsort() may call malloc, which leads to deadlock in ASan allocator llvm-svn: 160262
-
Tobias Grosser authored
Cast instruction do not have side effects and can consequently be part of a scop. We special cased them earlier, as they may be problematic within array subscripts or loop bounds. However, the scalar evolution validator already checks for them such that there is no need to also check the instructions within the basic blocks. Checking them is actually overly conservative as the precence of casts may invalidate a scop, even though scalar evolution is not influenced by it. llvm-svn: 160261
-
Nadav Rotem authored
undef virtual register. The problem is that ProcessImplicitDefs removes the definition of the register and marks all uses as undef. If we lose the undef marker then we get a register which has no def, is not marked as undef. The live interval analysis does not collect information for these virtual registers and we crash in later passes. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160260
-
Dmitry Vyukov authored
llvm-svn: 160259
-
Dmitry Vyukov authored
llvm-svn: 160258
-
Daniel Jasper authored
llvm-svn: 160257
-
Chandler Carruth authored
It turns out that ASan relied on the at-the-end block insertion order to (purely by happenstance) disable some LLVM optimizations, which in turn start firing when the ordering is made more "normal". These optimizations in turn merge many of the instrumentation reporting calls which breaks the return address based error reporting in ASan. We're looking at several different options for fixing this. llvm-svn: 160256
-
Daniel Jasper authored
llvm-svn: 160255
-
Chandler Carruth authored
This is particularly useful to the backend code generators which try to process things in the incoming function order. Also, cleanup some uses of IRBuilder to be a bit simpler and more clear. llvm-svn: 160254
-
Chandler Carruth authored
functionality test. In general, unless the functionality is substantially separated, we should lump more basic testing into this file. The test running infrastructure likes having a few test files with more comprehensive testing within them. llvm-svn: 160253
-
Daniel Jasper authored
CXXFunctionalCastExprs. llvm-svn: 160252
-
Chandler Carruth authored
Added a basic unit test for this with CreateCondBr. I didn't go all the way and test the switch side as the boilerplate for setting up the switch IRBuilder unit tests is a lot more. Fortunately, the two share all the interesting code paths. llvm-svn: 160251
-
Chandler Carruth authored
This is in anticipation of changing CreateCondBr and wanting to test those changes. llvm-svn: 160250
-
Chandler Carruth authored
the original move of IRBuilder. llvm-svn: 160249
-
Alexey Samsonov authored
It is intended to fix PR11468. Old prologue and epilogue looked like this: push %rbp mov %rsp, %rbp and $alignment, %rsp push %r14 push %r15 ... pop %r15 pop %r14 mov %rbp, %rsp pop %rbp The problem was to reference the locations of callee-saved registers in exception handling: locations of callee-saved had to be re-calculated regarding the stack alignment operation. It would take some effort to implement this in LLVM, as currently MachineLocation can only have the form "Register + Offset". Funciton prologue and epilogue are now changed to: push %rbp mov %rsp, %rbp push %14 push %15 and $alignment, %rsp ... lea -$size_of_saved_registers(%rbp), %rsp pop %r15 pop %r14 pop %rbp Reviewed by Chad Rosier. llvm-svn: 160248
-
Ted Kremenek authored
llvm-svn: 160247
-
Richard Smith authored
pattern might be an alias template which doesn't use its arguments). It's always instantiation-dependent, though. llvm-svn: 160246
-
Richard Smith authored
as an array of its base class TemplateArgument. Switch the const TemplateArgument* parameters of InstantiatingTemplate's constructors to ArrayRef<TemplateArgument> to prevent this from happening again in the future. llvm-svn: 160245
-
Richard Smith authored
being a property of a canonical type to being a property of the fully-sugared type. This should only make a difference in the case where an alias template ignores one of its parameters, and that parameter is an unexpanded parameter pack. llvm-svn: 160244
-
Chandler Carruth authored
the move of *Builder classes into the Core library. No uses of this builder in Clang or DragonEgg I could find. If there is a desire to have an IR-building-support library that contains all of these builders, that can be easily added, but currently it seems likely that these add no real overhead to VMCore. llvm-svn: 160243
-
Chandler Carruth authored
llvm-svn: 160242
-
Richard Smith authored
llvm-svn: 160241
-
Richard Smith authored
has a much lower default stack limit than the systems I have access to. llvm-svn: 160240
-
Chandler Carruth authored
llvm-svn: 160238
-
Chandler Carruth authored
IRBuilder, DIBuilder, etc. This is the proper layering as MDBuilder can't be used (or implemented) without the Core Metadata representation. Patches to Clang and Dragonegg coming up. llvm-svn: 160237
-
- Jul 15, 2012
-
-
David Chisnall authored
llvm-svn: 160236
-
Nadav Rotem authored
Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be wider than the output element type. Make sure to trunc them if needed. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160235
-
Nadav Rotem authored
llvm-svn: 160234
-
Daniel Jasper authored
Patch by Sam Panzer! llvm-svn: 160233
-
NAKAMURA Takumi authored
- Make sure existence of "barrier". - Confirm reload corresponding to spill. llvm-svn: 160232
-
David Chisnall authored
llvm-svn: 160231
-
Nadav Rotem authored
Allow the folding of vbroadcastRR to vbroadcastRM, where the memory operand is a spill slot. PR12782. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160230
-
Nadav Rotem authored
Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs. Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160229
-
Chandler Carruth authored
The notable fix is to look at any dependencies attached to the kill instruction (or other instructions between MI nad the kill) where the dependencies are specific to the register in question. The old code implicitly handled this by rejecting the transform if *any* other uses were found within the block, but after the start point. The new code directly finds the kill, and has to re-use the existing dependency scan to check for non-kill uses. This was caught by self-host, but I found the bug via inspection and use of absurd assert scaffolding to compute the kills in two ways and compare them. So I have no useful testcase for this other than "bootstrap". I'd work harder to reduce a test case if this particular code were likely to live for a long time. Thanks to Benjamin Kramer for reviewing the fix itself. llvm-svn: 160228
-
Rafael Espindola authored
struct __attribute__((visibility("hidden"))) zed { }; struct __attribute__((visibility("hidden"))) zed; Which is a bit silly and got a lot noisier now that we correctly handle visibility pragmas. This patch fixes that and also has some extra quality improvements: * We now produce an error instead of a warning for struct __attribute__((visibility("hidden"))) zed { }; struct __attribute__((visibility("default"))) zed; * The "after definition" warning now points to the new attribute that is ignored instead of pointing to the declaration. llvm-svn: 160227
-
Rafael Espindola authored
llvm-svn: 160226
-
Eric Christopher authored
Finishes rdar://11875995 llvm-svn: 160225
-
Eric Christopher authored
that we just copied from here and replace all uses. Part of rdar://11875995 llvm-svn: 160224
-