Eric Christopher [Tue, 22 May 2012 18:45:18 +0000 (18:45 +0000)]
Formatting consistency.
llvm-svn: 157273
Johnny Chen [Tue, 22 May 2012 18:34:18 +0000 (18:34 +0000)]
Fix wrong offset of eax and friends pointed out by Greg.
rdar://problem/
11487457
llvm-svn: 157272
Jakob Stoklund Olesen [Tue, 22 May 2012 18:20:28 +0000 (18:20 +0000)]
Also compute TopoSigs in synthetic register classes.
CodeGenRegisterClass has two constructors. Both need to compute the
TopoSigs BitVector.
llvm-svn: 157271
Dmitry Vyukov [Tue, 22 May 2012 18:07:45 +0000 (18:07 +0000)]
tsan: add shadow memory flush + fix few bugs
llvm-svn: 157270
Eric Christopher [Tue, 22 May 2012 18:04:48 +0000 (18:04 +0000)]
Test that we emit a subrange type for vlas.
Part of rdar://
11457152
llvm-svn: 157269
Dmitry Vyukov [Tue, 22 May 2012 18:01:33 +0000 (18:01 +0000)]
tsan: fix sizeof sigset_t
llvm-svn: 157268
Manuel Klimek [Tue, 22 May 2012 17:45:33 +0000 (17:45 +0000)]
Fixes the autoconf build.
llvm-svn: 157266
Nuno Lopes [Tue, 22 May 2012 17:40:46 +0000 (17:40 +0000)]
hopefully fix the CMake build. sorry for breakage
llvm-svn: 157264
Andrew Trick [Tue, 22 May 2012 17:39:59 +0000 (17:39 +0000)]
LSR fix: add a missing phi check during IV hoisting.
Fixes PR12898: SCEVExpander crash.
llvm-svn: 157263
Nuno Lopes [Tue, 22 May 2012 17:19:45 +0000 (17:19 +0000)]
wire -fbounds-checking to the new LLVM bounds checking pass
llvm-svn: 157262
Nuno Lopes [Tue, 22 May 2012 17:19:09 +0000 (17:19 +0000)]
add a new pass to instrument loads and stores for run-time bounds checking
move EmitGEPOffset from InstCombine to Transforms/Utils/Local.h
(a draft of this) patch reviewed by Andrew, thanks.
llvm-svn: 157261
Manuel Klimek [Tue, 22 May 2012 17:01:35 +0000 (17:01 +0000)]
Adds a method overwriteChangedFiles to the Rewriter. This is implemented by
first writing the changed files to a temporary location and then overwriting
the original files atomically.
Also adds a RewriterTestContext to aid unit testing rewrting logic in general.
llvm-svn: 157260
Dmitry Vyukov [Tue, 22 May 2012 16:46:05 +0000 (16:46 +0000)]
tsan: fix makefile
allow to build custom configurations
llvm-svn: 157259
Nuno Lopes [Tue, 22 May 2012 15:26:48 +0000 (15:26 +0000)]
revert the usage of the objectsize intrinsic with 3 parameters (to match LLVM r157255)
llvm-svn: 157256
Nuno Lopes [Tue, 22 May 2012 15:25:31 +0000 (15:25 +0000)]
revert my previous patches that introduced an additional parameter to the objectsize intrinsic.
After a lot of discussion, we realized it's not the best option for run-time bounds checking
llvm-svn: 157255
Jakob Stoklund Olesen [Tue, 22 May 2012 14:52:12 +0000 (14:52 +0000)]
Only erase virtregs with no uses left.
Also make sure registers aren't erased twice if the dead def mentions
the register twice.
This fixes PR12911.
llvm-svn: 157254
Filipe Cabecinhas [Tue, 22 May 2012 14:45:44 +0000 (14:45 +0000)]
Remove some compilation warnings.
llvm-svn: 157253
Dmitry Vyukov [Tue, 22 May 2012 14:34:43 +0000 (14:34 +0000)]
tsan: reduce per-thread memory usage
llvm-svn: 157252
Duncan Sands [Tue, 22 May 2012 14:17:53 +0000 (14:17 +0000)]
Fix PR12858, a crash due to GVN's PRE not fully removing an instruction from the
leader table. That's because it wasn't expecting instructions to turn up as
leader for a value number that is not its own, but equality propagation could
create this situation. One solution is to have the leader table use a WeakVH
but this slows down GVN by about 5%. Instead just have equality propagation not
add instructions to the leader table, only constants and arguments. In theory
this might cause GVN to run more (each time it changes something it runs again)
but it doesn't seem to occur enough to cause a slow down.
llvm-svn: 157251
Kostya Serebryany [Tue, 22 May 2012 13:31:35 +0000 (13:31 +0000)]
[asan] nuke some old unused code
llvm-svn: 157250
Kostya Serebryany [Tue, 22 May 2012 11:54:44 +0000 (11:54 +0000)]
[asan] increase the stack size limit to 256M (yes, that happens); also CHECK that the stack size is less than that on a non-main thread
llvm-svn: 157249
Dmitry Vyukov [Tue, 22 May 2012 11:33:03 +0000 (11:33 +0000)]
tsan: simple memory profiler
llvm-svn: 157248
Simon Atanasyan [Tue, 22 May 2012 11:03:10 +0000 (11:03 +0000)]
Replace inline asm constraint "=a" by the more general constraint "=r".
That extend a range of platforms support this test case.
llvm-svn: 157247
Tobias Grosser [Tue, 22 May 2012 10:47:31 +0000 (10:47 +0000)]
ScheduleOptimizer: Simplify some code
We now use isl_map_equate, which makes the code a lot simpler.
llvm-svn: 157246
Tobias Grosser [Tue, 22 May 2012 10:47:27 +0000 (10:47 +0000)]
ScopInfo: Add parameter bounds to context
Derive the maximal and minimal values of a parameter from the type it has. Add
this information to the scop context. This information is needed, to derive
optimal types during code generation.
llvm-svn: 157245
Tobias Grosser [Tue, 22 May 2012 10:47:21 +0000 (10:47 +0000)]
Replace some asserts with llvm_unreachable
llvm-svn: 157244
Tobias Grosser [Tue, 22 May 2012 10:47:17 +0000 (10:47 +0000)]
ScopInfo: SCEVUnknowns are always parameters
There is no need for special code to handle SCEVUnknowns. SCEVUnkowns are always
parameters and will be handled by the generic parameter handling code in
visit().
llvm-svn: 157243
Tobias Grosser [Tue, 22 May 2012 08:46:07 +0000 (08:46 +0000)]
Move isParallelFor into CodeGeneration
This removes another include of CLooG header files.
llvm-svn: 157242
Filipe Cabecinhas [Tue, 22 May 2012 08:38:06 +0000 (08:38 +0000)]
Return a constant of the appropriate type.
llvm-svn: 157241
Filipe Cabecinhas [Tue, 22 May 2012 08:36:18 +0000 (08:36 +0000)]
Remove trailing semicolons.
llvm-svn: 157240
Kostya Serebryany [Tue, 22 May 2012 07:59:37 +0000 (07:59 +0000)]
[asan] use -fno-builtin to build asan-rt on Mac
llvm-svn: 157239
Kostya Serebryany [Tue, 22 May 2012 07:56:09 +0000 (07:56 +0000)]
[asan] use -fPIE -fno-builtin for building asan-rt
llvm-svn: 157238
Kostya Serebryany [Tue, 22 May 2012 07:44:30 +0000 (07:44 +0000)]
[asan] fix one test on 32-bit Mac 10.7; enable another test on Mac
llvm-svn: 157237
Craig Topper [Tue, 22 May 2012 06:09:38 +0000 (06:09 +0000)]
Fix constant used for pshufb mask when lowering v16i8 shuffles. Bug introduced in r157043. Fixes PR12908.
llvm-svn: 157236
Akira Hatanaka [Tue, 22 May 2012 03:10:09 +0000 (03:10 +0000)]
This patch adds a predicate to existing mips32 and mips64 so that those
instruction encodings can be excluded during mips16 processing.
This revision fixes the issue raised by Jim Grosbach.
bool hasStandardEncoding() const { return !inMips16Mode(); }
When micromips is added it will be
bool StandardEncoding() const { return !inMips16Mode()&& !inMicroMipsMode(); }
No additional testing is needed other than to assure that there is no regression
from this patch.
Patch by Reed Kotler.
llvm-svn: 157234
Richard Smith [Tue, 22 May 2012 01:41:27 +0000 (01:41 +0000)]
Truthify a comment.
llvm-svn: 157232
Nuno Lopes [Tue, 22 May 2012 01:09:48 +0000 (01:09 +0000)]
fix the quotient returned by sdivrem() for the case when LHS is negative and RHS is positive
based on a patch by Preston Briggs, with some modifications
llvm-svn: 157231
Johnny Chen [Tue, 22 May 2012 00:57:05 +0000 (00:57 +0000)]
rdar://problem/
11487457
Add convenience registers eax, ebx, ecx, edx, edi, esi, ebp, esp to the 'register read' command for x86_64.
Add a GDBRemoteRegisterContext::Addx86_64ConvenienceRegisters() method called from ProcessGDBRemote::BuildDynamicRegisterInfo().
Servicing of eax, for example, is accomplished by delegating to rax with an adjusted offset into the register context.
llvm-svn: 157230
Ted Kremenek [Tue, 22 May 2012 00:54:40 +0000 (00:54 +0000)]
Fix typo.
llvm-svn: 157229
Ted Kremenek [Tue, 22 May 2012 00:52:49 +0000 (00:52 +0000)]
Use Perl prototypes instead of shift.
llvm-svn: 157228
Argyrios Kyrtzidis [Tue, 22 May 2012 00:47:53 +0000 (00:47 +0000)]
[objcmt] Don't add redundant parentheses when migrating subscripting of an ivar.
rdar://
11501256
llvm-svn: 157227
Johnny Chen [Tue, 22 May 2012 00:22:18 +0000 (00:22 +0000)]
Fix a bug where if I just run:
./dotest.py
No progress bar appears.
llvm-svn: 157226
Jim Ingham [Tue, 22 May 2012 00:12:20 +0000 (00:12 +0000)]
Also push file & line breakpoints past the prologue. Also added a "-K" argument to the relevant
"break set" commands to set this per breakpoint. Also, some CreateBreakpoint API's in the lldb_private
namespace had "internal" first and "skip_prologue" second. "internal should always be last. Fixed that.
rdar://problem/
11484729
llvm-svn: 157225
Jim Grosbach [Mon, 21 May 2012 23:50:00 +0000 (23:50 +0000)]
FileCheck'ize test, and add a bit to test for r157221.
llvm-svn: 157222
Jim Grosbach [Mon, 21 May 2012 23:34:42 +0000 (23:34 +0000)]
ARM: .end_data_region mismatch in Thumb2.
32-bit offset jump tables just use real branch instructions and so aren't
marked as data regions. We were still emitting the .end_data_region
marker though, which assert()ed.
rdar://
11499158
llvm-svn: 157221
Sean Callanan [Mon, 21 May 2012 23:31:51 +0000 (23:31 +0000)]
Added support for rvalue references in debug information
(actually, mainly just hooked up support that was already
there). Added a test case, although it's expected to fail
right now unless you're using top-of-tree LLVM.
llvm-svn: 157220
Ted Kremenek [Mon, 21 May 2012 23:29:01 +0000 (23:29 +0000)]
Add basic delta-debugging script used for reducing analyzer crasher test cases.
llvm-svn: 157219
Pete Cooper [Mon, 21 May 2012 23:21:28 +0000 (23:21 +0000)]
Added address space qualifier to intrinsic PointerType arguments.
llvm-svn: 157218
Jim Ingham [Mon, 21 May 2012 23:06:47 +0000 (23:06 +0000)]
CompileUnit::ResolveSymbolContext was only filling in the LineEntry regardless of what was passed in for "resolve_scope". I fixed that.
llvm-svn: 157217
Fariborz Jahanian [Mon, 21 May 2012 22:43:44 +0000 (22:43 +0000)]
objective-c: provide a useful 'fixit' suggestion when
errornously using commas to separate ObjC message arguments.
// rdar://
11376372
llvm-svn: 157216
Owen Anderson [Mon, 21 May 2012 22:39:20 +0000 (22:39 +0000)]
Fix use of an unitialized value in the LegalizeOps expansion for ISD::SUB. No in-tree targets exercise this path.
Patch by Micah Villmow.
llvm-svn: 157215
Sean Callanan [Mon, 21 May 2012 22:25:52 +0000 (22:25 +0000)]
Updated the object-pointer lookup logic to fix
Objective-C "self," which is not a regular pointer.
llvm-svn: 157214
Sean Callanan [Mon, 21 May 2012 22:25:12 +0000 (22:25 +0000)]
Fixed the new-syntax testcase to reflect how we
print string literals.
llvm-svn: 157213
Eric Christopher [Mon, 21 May 2012 22:13:23 +0000 (22:13 +0000)]
Revert r115805. An array type is required to have a range type,
however, the range can be unknown for the upper bound.
Testcase to follow.
Part of rdar://
11457152
llvm-svn: 157212
Anna Zaks [Mon, 21 May 2012 22:07:00 +0000 (22:07 +0000)]
[analyzer] Bind UnknownVal to InitListExpr for unsupported types
(ex: float).
llvm-svn: 157211
Enrico Granata [Mon, 21 May 2012 21:52:38 +0000 (21:52 +0000)]
Fixes for performance to data formatters - Python < 3.0 is much slower when using True/False as compared to 1/0 for logical values. Wexploit this to our advantage. Other minor tweaks
llvm-svn: 157209
Sean Callanan [Mon, 21 May 2012 21:29:52 +0000 (21:29 +0000)]
Fixed a nasty bug where JIT expressions didn't work
when stopped in a const method. Also updated our
testsuite to ensure that JIT is forced in this case.
llvm-svn: 157208
Rafael Espindola [Mon, 21 May 2012 20:31:27 +0000 (20:31 +0000)]
Function template version of the previous patch.
llvm-svn: 157207
Rafael Espindola [Mon, 21 May 2012 20:15:56 +0000 (20:15 +0000)]
Produce a hidden symbol for zed in
struct HIDDEN foo {
};
template <class P>
struct bar {
};
template <>
struct HIDDEN bar<foo> {
DEFAULT static void zed();
};
void bar<foo>::zed() {
}
Before we would produce a hidden symbol in
struct HIDDEN foo {
};
template <class P>
struct bar {
};
template <>
struct bar<foo> {
DEFAULT static void zed();
};
void bar<foo>::zed() {
}
But adding HIDDEN to the specialization would cause us to produce a default
symbol.
llvm-svn: 157206
Argyrios Kyrtzidis [Mon, 21 May 2012 20:11:54 +0000 (20:11 +0000)]
[driver] When creating the compiler invocation out of command-line
arguments, force use of clang frontend for the driver.
Fixes rdar://
11356765.
llvm-svn: 157205
Benjamin Kramer [Mon, 21 May 2012 19:40:38 +0000 (19:40 +0000)]
Analyzer: Fix PR12905, a crash when encountering a call to a function named "C".
While there clean up indentation.
llvm-svn: 157204
Sean Callanan [Mon, 21 May 2012 18:25:19 +0000 (18:25 +0000)]
Added an "rb" alias that sets breakpoints by
regular expression.
llvm-svn: 157202
Jim Grosbach [Mon, 21 May 2012 17:57:17 +0000 (17:57 +0000)]
Thumb2: RSB source register should be rGRP not GPRnopc.
t2RSB defined the operand correctly, but tRSBS didn't.
llvm-svn: 157200
Sean Callanan [Mon, 21 May 2012 17:54:55 +0000 (17:54 +0000)]
Integrated a check into Clang that make sure that
it doesn't try to call LookupDestructor on an
incomplete class.
llvm-svn: 157199
Argyrios Kyrtzidis [Mon, 21 May 2012 17:48:31 +0000 (17:48 +0000)]
[arcmt] Revert r156999 "Remove the "it is not safe to remove an unused 'autorelease' message" ARC
migration error".
Per feedback from John this is useful to have in general.
llvm-svn: 157198
Dan Gohman [Mon, 21 May 2012 17:41:28 +0000 (17:41 +0000)]
Mark an unreachable region of code with llvm_unreachable.
llvm-svn: 157197
Dmitry Vyukov [Mon, 21 May 2012 17:39:40 +0000 (17:39 +0000)]
tsan: implement malloc/free hooks
llvm-svn: 157196
Chad Rosier [Mon, 21 May 2012 17:13:41 +0000 (17:13 +0000)]
Typo.
llvm-svn: 157195
Fariborz Jahanian [Mon, 21 May 2012 17:10:28 +0000 (17:10 +0000)]
Remove unused argument in my last patch.
llvm-svn: 157194
Fariborz Jahanian [Mon, 21 May 2012 17:02:43 +0000 (17:02 +0000)]
objective-c: When default synthesizing readonly IBOutlet properties
provide a 'fixit' to change 'readonly' to 'readwrite'. // rdar://
11448209
llvm-svn: 157193
Sean Callanan [Mon, 21 May 2012 17:01:59 +0000 (17:01 +0000)]
Added a GDB equivalent for saving binary memory
data.
llvm-svn: 157192
Owen Anderson [Mon, 21 May 2012 16:57:17 +0000 (16:57 +0000)]
Make it so that the MArch, MCPU, MAttrs passed to EngineBuilder are actually used.
Patch by Jose Fonseca.
llvm-svn: 157191
Enrico Granata [Mon, 21 May 2012 16:51:35 +0000 (16:51 +0000)]
<rdar://problem/
11355592> Fixing a bug where we would incorrectly try and determine a dynamic type for a variable of a pointer type that is not a valid generic type for dynamic pointers.
llvm-svn: 157190
Timur Iskhodzhanov [Mon, 21 May 2012 14:25:36 +0000 (14:25 +0000)]
[ASan] Make for-Windows RTL compileable using Clang++
llvm-svn: 157188
Dmitry Vyukov [Mon, 21 May 2012 14:24:20 +0000 (14:24 +0000)]
tsan: do not assume non-recursive signal handlers
llvm-svn: 157187
Rafael Espindola [Mon, 21 May 2012 14:22:37 +0000 (14:22 +0000)]
Test and document a difference from gcc in the handling of visibility
attributes.
llvm-svn: 157186
Patrik Hägglund [Mon, 21 May 2012 13:18:06 +0000 (13:18 +0000)]
test commit
llvm-svn: 157184
Stepan Dyatkovskiy [Mon, 21 May 2012 10:44:40 +0000 (10:44 +0000)]
PR1255 (case ranges: work with ConstantRangesSet instead of ConstantInt) related changes for Execution and Verifier.
llvm-svn: 157183
Benjamin Kramer [Mon, 21 May 2012 10:42:01 +0000 (10:42 +0000)]
Unpack enums in CodeCompletetionResult.
In theory they should be wide enough even when the enum type is signed, but it
looks like MSVC9 still has problems with it.
llvm-svn: 157182
Dmitry Vyukov [Mon, 21 May 2012 10:20:53 +0000 (10:20 +0000)]
tsan: replace CHECK with CHECK_EQ for better diagnostics
llvm-svn: 157181
Dmitry Vyukov [Mon, 21 May 2012 08:26:51 +0000 (08:26 +0000)]
tsan: better, more realistic handling of signals
llvm-svn: 157178
Dmitry Vyukov [Mon, 21 May 2012 06:46:27 +0000 (06:46 +0000)]
tsan: add more checks for OOM conditions
tests like to try to malloc((size_t)-1)
llvm-svn: 157176
Craig Topper [Mon, 21 May 2012 06:40:16 +0000 (06:40 +0000)]
Allow 256-bit shuffles to still be split even if only half of the shuffle comes from two 128-bit pieces.
llvm-svn: 157175
Jakob Stoklund Olesen [Mon, 21 May 2012 03:11:23 +0000 (03:11 +0000)]
Give a small negative bias to giant edge bundles.
This helps compile time when the greedy register allocator splits live
ranges in giant functions. Without the bias, we would try to grow
regions through the giant edge bundles, usually to find out that the
region became too big and expensive.
If a live range has many uses in blocks near the giant bundle, the small
negative bias doesn't make a big difference, and we still consider
regions including the giant edge bundle.
Giant edge bundles are usually connected to landing pads or indirect
branches.
llvm-svn: 157174
Peter Collingbourne [Sun, 20 May 2012 23:28:41 +0000 (23:28 +0000)]
Teach Clang about the NVPTX backend.
llvm-svn: 157173
Peter Collingbourne [Sun, 20 May 2012 23:28:36 +0000 (23:28 +0000)]
Tell the driver that CUDA is a C++-like language, so that we get C++
header searches with CUDA.
llvm-svn: 157172
Peter Collingbourne [Sun, 20 May 2012 23:28:32 +0000 (23:28 +0000)]
CUDA: the device and host attributes must be inheritable, in order
to deal with NVIDIA's headers. We'll need to think of another way
to handle multiple host/device definitions within the same TU.
llvm-svn: 157171
NAKAMURA Takumi [Sun, 20 May 2012 22:28:03 +0000 (22:28 +0000)]
test/Tooling/clang-check-pwd.cpp: Mark as XFAIL:mingw for now. Fixing is work-in-progress.
llvm-svn: 157170
Jakob Stoklund Olesen [Sun, 20 May 2012 21:41:05 +0000 (21:41 +0000)]
Clear kill flags on the fly when joining intervals.
With physreg joining out of the way, it is easy to recognize the
instructions that need their kill flags cleared while testing for
interference.
This allows us to skip the final scan of all instructions for an 11%
speedup of the coalescer pass.
llvm-svn: 157169
Peter Collingbourne [Sun, 20 May 2012 21:08:35 +0000 (21:08 +0000)]
CUDA: add CodeGen support for global variable address spaces.
Because in CUDA types do not have associated address spaces,
globals are declared in their "native" address space, and accessed
by bitcasting the pointer to address space 0. This relies on address
space 0 being a unified address space.
llvm-svn: 157167
Nick Lewycky [Sun, 20 May 2012 20:30:47 +0000 (20:30 +0000)]
Add RPO to the lexicon.
llvm-svn: 157166
Jakob Stoklund Olesen [Sun, 20 May 2012 18:43:00 +0000 (18:43 +0000)]
Make the global base reg GR32_NOSP.
It can sometimes be used in addressing modes that don't support %ESP.
llvm-svn: 157165
Jakob Stoklund Olesen [Sun, 20 May 2012 18:42:55 +0000 (18:42 +0000)]
Constrain regclasses in PeepholeOptimizer.
It can be necessary to restrict to a sub-class before accessing
sub-registers.
llvm-svn: 157164
Jakob Stoklund Olesen [Sun, 20 May 2012 18:42:51 +0000 (18:42 +0000)]
Constrain register classes in TailDup.
When rewriting operands, make sure the new registers have a compatible
register class.
llvm-svn: 157163
Peter Collingbourne [Sun, 20 May 2012 18:36:15 +0000 (18:36 +0000)]
When legalising shifts, do not pre-build a list of operands which
may be RAUW'd by the recursive call to LegalizeOps; instead, retrieve
the other operands when calling UpdateNodeOperands. Fixes PR12889.
llvm-svn: 157162
Benjamin Kramer [Sun, 20 May 2012 18:10:42 +0000 (18:10 +0000)]
Emit memcmp directly from the StringMatcherEmitter.
There should be no difference in the resulting binary, given a sufficiently
smart compiler. However we already had compiler timeouts on the generated
code in Intrinsics.gen, this hopefully makes the lives of slow buildbots a
little easier.
llvm-svn: 157161
Benjamin Kramer [Sun, 20 May 2012 17:24:08 +0000 (17:24 +0000)]
Plug a leak when using MCJIT.
Found by valgrind.
llvm-svn: 157160
Hal Finkel [Sun, 20 May 2012 17:11:24 +0000 (17:11 +0000)]
Add a missing PPC 64-bit stwu pattern.
This seems to fix the remaining compile-time failures on PPC64 when
compiling with -enable-ppc-preinc.
llvm-svn: 157159
Benjamin Kramer [Sun, 20 May 2012 14:19:46 +0000 (14:19 +0000)]
Bitpack CodeCompletionResults.
llvm-svn: 157158
Howard Hinnant [Sun, 20 May 2012 13:03:53 +0000 (13:03 +0000)]
Add documentation regarding -fno-rtti.
llvm-svn: 157157