- Sep 06, 2012
-
-
Jordan Rose authored
CXXDestructorCall now has a flag for when it is a base destructor call. Other kinds of destructor calls (locals, fields, temporaries, and 'delete') all behave as "whole-object" destructors and do not behave differently from one another (specifically, in these cases we /should/ try to devirtualize a call to a virtual destructor). This was causing crashes in both our internal buildbot, the crash still being tracked in PR13765, and some of the crashes being tracked in PR13763, due to a assertion failure. (The behavior under -Asserts happened to be correct anyway.) Adding this knowledge also allows our DynamicTypePropagation checker to do a bit less work; the special rules about virtual method calls during a destructor only require extra handling during base destructors. llvm-svn: 163348
-
Jack Carter authored
This includes sb,sc,sh,sw,lb,lw,lbu,lh,lhu,ll,lw Test case included Contributer: Vladimir Medic llvm-svn: 163346
-
Chad Rosier authored
handle. Otherwise, the AsmParser will explode if we try to generate an object files. llvm-svn: 163345
-
Manman Ren authored
No functional change. llvm-svn: 163344
-
Jakob Stoklund Olesen authored
Thanks, Andy. llvm-svn: 163343
-
Chad Rosier authored
and output expressions much like that in GNU-style inline assembly. Output expressions are first. Do this for MS-style inline asms. llvm-svn: 163342
-
Jim Ingham authored
llvm-svn: 163341
-
Jim Ingham authored
llvm-svn: 163340
-
Manman Ren authored
No functional change. llvm-svn: 163339
-
Fariborz Jahanian authored
// rdar://12233989 llvm-svn: 163338
-
Richard Smith authored
Don't try to check override control for invalid member functions. Fixes a crash in a corner case. Patch by Olivier Goffart! llvm-svn: 163337
-
Jakob Stoklund Olesen authored
The RegisterCoalescer understands overlapping live ranges where one register is defined as a copy of the other. With this change, register allocators using LiveRegMatrix can do the same, at least for copies between physical and virtual registers. When a physreg is defined by a copy from a virtreg, allow those live ranges to overlap: %CL<def> = COPY %vreg11:sub_8bit; GR32_ABCD:%vreg11 %vreg13<def,tied1> = SAR32rCL %vreg13<tied0>, %CL<imp-use,kill> We can assign %vreg11 to %ECX, overlapping the live range of %CL. llvm-svn: 163336
-
Jakob Stoklund Olesen authored
We will soon allow virtual register live ranges to overlap regunit live ranges when the physreg is defined as a copy of the virtreg: %EAX = COPY %vreg5 FOO %vreg5 BAR %EAX<kill> There is no real interference since %vreg5 and %EAX have the same value where they overlap. This patch prevents addKillFlags from adding virtreg kill flags to FOO where the assigned physreg is overlapping the virtual register live range. llvm-svn: 163335
-
Jakob Stoklund Olesen authored
Kill flags are difficult to maintain, and liveness queries are better handled by live intervals. Kill flags are reinserted after register allocation by addKillFlags(). llvm-svn: 163334
-
Derek Schuff authored
This patch uses a new ABIInfo implementation specific to the le32 target, rather than falling back to DefaultABIInfo. Its behavior is basically the same, but it also allows the regparm argument attribute. It also includes basic tests for argument codegen and attributes. llvm-svn: 163333
-
Enrico Granata authored
llvm-svn: 163332
-
Enrico Granata authored
Enabling the UTF conversion routines that were previously conditionally ifdef'ed out. This change is required to support enhancements in the LLDB data formatters llvm-svn: 163331
-
Aaron Ballman authored
Fixing the return type information for objc_sync_enter and objc_sync_exit. Patch thanks to Joe Ranieri! llvm-svn: 163330
-
Fariborz Jahanian authored
Don't warn if annotated decl is used inside another unused. // rdar://12233989 llvm-svn: 163329
-
Jakob Stoklund Olesen authored
These tests were failing for me because the .* was greedily matching up to the /libexec/ld-elf.so.1" later on the same line. llvm-svn: 163328
-
Roman Divacky authored
llvm-svn: 163327
-
Dmitry Vyukov authored
llvm-svn: 163326
-
Roman Divacky authored
llvm-svn: 163325
-
Roman Divacky authored
llvm-svn: 163324
-
Tim Northover authored
Patch by Chris Lidbury. llvm-svn: 163323
-
Dmitry Vyukov authored
tsan: increase max shadow stack size + reduce memory consumption at the same time (by not memorizing full stacks in traces) llvm-svn: 163322
-
Tim Northover authored
Patch by Chris Lidbury. llvm-svn: 163321
-
Dmitry Vyukov authored
llvm-svn: 163320
-
Arnold Schwaighofer authored
Enhances basic alias analysis to recognize phis whose first incoming values are NoAlias and whose other incoming values are just the phi node itself through some amount of recursion. Example: With this change basicaa reports that ptr_phi and ptr_phi2 do not alias each other. bb: ptr = ptr2 + 1 loop: ptr_phi = phi [bb, ptr], [loop, ptr_plus_one] ptr2_phi = phi [bb, ptr2], [loop, ptr2_plus_one] ... ptr_plus_one = gep ptr_phi, 1 ptr2_plus_one = gep ptr2_phi, 1 This enables the elimination of one load in code like the following: extern int foo; int test_noalias(int *ptr, int num, int* coeff) { int *ptr2 = ptr; int result = (*ptr++) * (*coeff--); while (num--) { *ptr2++ = *ptr; result += (*coeff--) * (*ptr++); } *ptr = foo; return result; } Part 2/2 of fix for PR13564. llvm-svn: 163319
-
Tim Northover authored
Patch by Chris Lidbury. llvm-svn: 163318
-
Arnold Schwaighofer authored
If we can show that the base pointers of two GEPs don't alias each other using precise analysis and the indices and base offset are equal then the two GEPs also don't alias each other. This is primarily needed for the follow up patch that analyses NoAlias'ing PHI nodes. Part 1/2 of fix for PR13564. llvm-svn: 163317
-
Nadav Rotem authored
llvm-svn: 163316
-
Tom Stellard authored
This Operand type takes a default argument, and is initialized to this value if it does not appear in a patter. llvm-svn: 163315
-
Alexander Potapenko authored
Fix two compiler warnings: must use at least one argument for "..." in a variadic macros, signed vs. unsigned comparison. llvm-svn: 163314
-
Evgeniy Stepanov authored
llvm-svn: 163313
-
Elena Demikhovsky authored
Added generation of VPSHUB instruction for <32 x i8> vector shuffle when possible. llvm-svn: 163312
-
Alexander Potapenko authored
llvm-svn: 163311
-
Nadav Rotem authored
llvm-svn: 163309
-
Kostya Serebryany authored
llvm-svn: 163308
-
Nadav Rotem authored
llvm-svn: 163307
-