Richard Smith [Tue, 18 Dec 2012 00:22:45 +0000 (00:22 +0000)]
Rein ubsan's vptr sanitizer back a bit. Per core issue 453, binding a reference
to an object outside its lifetime does not have undefined behavior.
llvm-svn: 170387
Jakob Stoklund Olesen [Tue, 18 Dec 2012 00:13:11 +0000 (00:13 +0000)]
Extract a method, no functional change intended.
Sadly, this costs us a perfectly good opportunity to use 'goto'.
llvm-svn: 170385
Jakob Stoklund Olesen [Mon, 17 Dec 2012 23:55:38 +0000 (23:55 +0000)]
Tighten up the erase/remove API for bundled instructions.
Most code is oblivious to bundles and uses the MBB::iterator which only
visits whole bundles. MBB::erase() operates on whole bundles at a time
as before.
MBB::remove() now refuses to remove bundled instructions. It is not safe
to remove all instructions in a bundle without deleting them since there
is no way of returning pointers to all the removed instructions.
MBB::remove_instr() and MBB::erase_instr() will now update bundle flags
correctly, lifting individual instructions out of bundles while leaving
the remaining bundle intact.
The MachineInstr convenience functions are updated so
eraseFromParent() erases a whole bundle as before
eraseFromBundle() erases a single instruction, leaving the rest of its bundle.
removeFromParent() refuses to operate on bundled instructions, and
removeFromBundle() lifts a single instruction out of its bundle.
These functions will no longer accidentally split or coalesce bundles -
bundle flags are updated to preserve the existing bundling, and explicit
bundleWith* / unbundleFrom* functions should be used to change the
instruction bundling.
This API update is still a work in progress. I am going to update APIs
first so they maintain bundle flags automatically when possible. Then
I'll add stricter verification of the bundle flags.
llvm-svn: 170384
Reed Kotler [Mon, 17 Dec 2012 23:41:45 +0000 (23:41 +0000)]
EmitDebugLabel should by default be the same as EmitLabel everywhere.
It must be explicity set in MCPureStreamer because otherwise it will
inherit incorrectly from the parent.
llvm-svn: 170383
Eli Bendersky [Mon, 17 Dec 2012 22:50:56 +0000 (22:50 +0000)]
fix indentation
llvm-svn: 170381
Chad Rosier [Mon, 17 Dec 2012 22:35:29 +0000 (22:35 +0000)]
[arm fast-isel] Minor cleanup. No functional change intended.
llvm-svn: 170379
Rafael Espindola [Mon, 17 Dec 2012 22:23:47 +0000 (22:23 +0000)]
Fix isThisDeclarationADefinition for extern following tentative.
An extern declaration following a tentative definition should not itself be
considered a tentative definition.
Fixes pr14614.
llvm-svn: 170377
Nick Kledzik [Mon, 17 Dec 2012 22:11:17 +0000 (22:11 +0000)]
Fix some integer constant warnings by using a suffix
llvm-svn: 170376
Chandler Carruth [Mon, 17 Dec 2012 21:44:50 +0000 (21:44 +0000)]
Add a triple to this test -- it has to be an ELF platform...
llvm-svn: 170374
Chandler Carruth [Mon, 17 Dec 2012 21:40:04 +0000 (21:40 +0000)]
Fix PR14625 by teaching the driver to detect PWD for assembly files.
This also requires adding support to -cc1as for passing the detecting
PWD down through LLVM's debug info (which in turn required the LLVM
change in r170371).
The test case is weak (we only test the driver behavior) because there
is currently to infrastructure for running cc1as in the test suite. So
those four lines are untested (much like all other lines in that file),
but we have a test for the same pattern using llvm-mc in the LLVM
repository.
llvm-svn: 170373
Daniel Malea [Mon, 17 Dec 2012 21:32:49 +0000 (21:32 +0000)]
Mention how to do a (Linux) release build on the build instructions page.
Also, a few minor fixes:
- paragraph formatting
- capitalize "Python" where appropriate
llvm-svn: 170372
Chandler Carruth [Mon, 17 Dec 2012 21:32:42 +0000 (21:32 +0000)]
Prepare LLVM to fix PR14625, exposing a hook in MCContext to manage the
compilation directory.
This defaults to the current working directory, just as it always has,
but now an assembler can choose to override it with a custom directory.
I've taught llvm-mc about this option and added a test case.
llvm-svn: 170371
Han Ming Ong [Mon, 17 Dec 2012 20:53:19 +0000 (20:53 +0000)]
<rdar://problem/
12890948>
Send thread name using hex encoding.
llvm-svn: 170370
Nick Kledzik [Mon, 17 Dec 2012 20:43:53 +0000 (20:43 +0000)]
re-enable test cases now that traits work with g++. Fix some g++ warnings
llvm-svn: 170369
Michael Ilseman [Mon, 17 Dec 2012 20:40:14 +0000 (20:40 +0000)]
Remove trailing whitespace
llvm-svn: 170368
Michael Ilseman [Mon, 17 Dec 2012 20:37:55 +0000 (20:37 +0000)]
Removed trailing whitespace
llvm-svn: 170367
Argyrios Kyrtzidis [Mon, 17 Dec 2012 20:19:56 +0000 (20:19 +0000)]
[c-index-test] Fix warnings about unused results from chdir().
Patch from Edwin Vane!
llvm-svn: 170366
Argyrios Kyrtzidis [Mon, 17 Dec 2012 20:10:50 +0000 (20:10 +0000)]
Just use begin()/end() instead of "&Vector[0], &Vector[0]+Vector.size()".
No functionality change.
llvm-svn: 170365
Argyrios Kyrtzidis [Mon, 17 Dec 2012 20:10:49 +0000 (20:10 +0000)]
Don't include the header outside the include guards, it defeats the purpose of the include guards.
llvm-svn: 170364
Argyrios Kyrtzidis [Mon, 17 Dec 2012 20:10:43 +0000 (20:10 +0000)]
[parser] Push a semi token for recovery only when it is actually missing.
llvm-svn: 170363
Anna Zaks [Mon, 17 Dec 2012 20:08:54 +0000 (20:08 +0000)]
[analyzer] Tweak the NumFunctionsAnalyzed stat so that it's more useful.
llvm-svn: 170362
Anna Zaks [Mon, 17 Dec 2012 20:08:51 +0000 (20:08 +0000)]
[analyzer] Implement "do not inline large functions many times"
performance heuristic
After inlining a function with more than 13 basic blocks 32 times, we
are not going to inline it anymore. The idea is that inlining large
functions leads to drastic performance implications. Since the function
has already been inlined, we know that we've analyzed it in many
contexts.
The following metrics are used:
- Large function is a function with more than 13 basic blocks (we
should switch to another metric, like cyclomatic complexity)
- We consider that we've inlined a function many times if it's been
inlined 32 times. This number is configurable with -analyzer-config
max-times-inline-large=xx
This heuristic addresses a performance regression introduced with
inlining on one benchmark. The analyzer on this benchmark became 60
times slower with inlining turned on. The heuristic allows us to analyze
it in 24% of the time. The performance improvements on the other
benchmarks I've tested with are much lower - under 10%, which is
expected.
llvm-svn: 170361
Chad Rosier [Mon, 17 Dec 2012 19:59:43 +0000 (19:59 +0000)]
[arm fast-isel] Fast-isel only handles simple VTs, so make sure the necessary
checks are in place. Some minor cleanup as well.
llvm-svn: 170360
Nick Kledzik [Mon, 17 Dec 2012 19:02:05 +0000 (19:02 +0000)]
Use different trait techniques to be compatible with g++
llvm-svn: 170355
David Chisnall [Mon, 17 Dec 2012 18:54:24 +0000 (18:54 +0000)]
Reapply r170344, this time without forgetting to commit the header changes.
llvm-svn: 170354
Chandler Carruth [Mon, 17 Dec 2012 18:48:07 +0000 (18:48 +0000)]
Fix another SROA crasher, PR14601.
This was a silly oversight, we weren't pruning allocas which were used
by variable-length memory intrinsics from the set that could be widened
and promoted as integers. Fix that.
llvm-svn: 170353
Benjamin Kramer [Mon, 17 Dec 2012 18:02:43 +0000 (18:02 +0000)]
Revert "Added support for new property helpers (GNUstep runtime)."
This reverts commit r170344. Doesn't even compile.
llvm-svn: 170351
Tim Northover [Mon, 17 Dec 2012 17:59:35 +0000 (17:59 +0000)]
Query section for whether it should be executable.
llvm-svn: 170350
Tim Northover [Mon, 17 Dec 2012 17:59:32 +0000 (17:59 +0000)]
Teach MachO which sections contain code
llvm-svn: 170349
Daniel Malea [Mon, 17 Dec 2012 17:40:07 +0000 (17:40 +0000)]
Initialize m_done to false in Driver constructor to avoid premature exit bug (spotted on Linux)
Patch by Chia-Hung Duan!
llvm-svn: 170348
Evgeniy Stepanov [Mon, 17 Dec 2012 16:30:05 +0000 (16:30 +0000)]
[msan] Fix lint warning.
llvm-svn: 170347
Dmitry Vyukov [Mon, 17 Dec 2012 16:28:15 +0000 (16:28 +0000)]
tsan: say what thread had created a thread in reports
llvm-svn: 170346
Richard Osborne [Mon, 17 Dec 2012 16:28:02 +0000 (16:28 +0000)]
Add instruction encodings / disassembly support for l2r instructions.
llvm-svn: 170345
David Chisnall [Mon, 17 Dec 2012 15:59:29 +0000 (15:59 +0000)]
Added support for new property helpers (GNUstep runtime).
llvm-svn: 170344
Tom Stellard [Mon, 17 Dec 2012 15:14:56 +0000 (15:14 +0000)]
R600: enable S_*N2_* instructions
They seem to work fine.
Patch by: Christian König
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
llvm-svn: 170343
Tom Stellard [Mon, 17 Dec 2012 15:14:54 +0000 (15:14 +0000)]
R600: BB operand support for SI
Patch by: Christian König
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
llvm-svn: 170342
Tom Stellard [Mon, 17 Dec 2012 15:14:53 +0000 (15:14 +0000)]
R600: remove nonsense setPrefLoopAlignment
The Align parameter is a power of two, so 16 results in 64K
alignment. Additional to that even 16 byte alignment doesn't
make any sense, so just remove it.
Patch by: Christian König
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
llvm-svn: 170341
Kostya Serebryany [Mon, 17 Dec 2012 14:57:25 +0000 (14:57 +0000)]
[asan] asan_allocator2: implement malloc_usable_size and fix 32-bit
llvm-svn: 170339
Chandler Carruth [Mon, 17 Dec 2012 14:51:24 +0000 (14:51 +0000)]
Teach the rewriting of memcpy calls to support subvector copies.
This also cleans up a bit of the memcpy call rewriting by sinking some
irrelevant code further down and making the call-emitting code a bit
more concrete.
Previously, memcpy of a subvector would actually miscompile (!!!) the
copy into a single vector element copy. I have no idea how this ever
worked. =/ This is the memcpy half of PR14478 which we probably weren't
noticing previously because it didn't actually assert.
The rewrite relies on the newly refactored insert- and extractVector
functions to do the heavy lifting, and those are the same as used for
loads and stores which makes the test coverage a bit more meaningful
here.
llvm-svn: 170338
Daniel Jasper [Mon, 17 Dec 2012 14:34:14 +0000 (14:34 +0000)]
Add basic support for splitting before function calls if it can't be
avoided.
This required a minor modification of the memoization as now the
"CurrentPenalty" depends on whether or not we break before the current
token. Therefore, the CurrentPenalty should not be memoized but added
after retrieving a value from memory. This should not affect the runtime
behavior.
llvm-svn: 170337
Patrik Hagglund [Mon, 17 Dec 2012 14:30:06 +0000 (14:30 +0000)]
Revert/correct some FastISel changes in r170104 (EVT->MVT for
TargetLowering::getRegClassFor).
Some isSimple() guards were missing, or getSimpleVT() were hoisted too
far, resulting in asserts on valid LLVM assembly input.
llvm-svn: 170336
Evgeniy Stepanov [Mon, 17 Dec 2012 14:28:00 +0000 (14:28 +0000)]
Optimize tree walking in markAliveBlocks.
Check whether a BB is known as reachable before adding it to the worklist.
This way BB's with multiple predecessors are added to the list no more than
once.
llvm-svn: 170335
Richard Osborne [Mon, 17 Dec 2012 14:23:54 +0000 (14:23 +0000)]
Add instruction encodings for PEEK and ENDIN.
Previously these were marked with the wrong format.
llvm-svn: 170334
Chandler Carruth [Mon, 17 Dec 2012 14:03:01 +0000 (14:03 +0000)]
Fix a secondary bug I introduced while fixing the first part of PR14478.
The first half of fixing this bug was actually in r170328, but was
entirely coincidental. It did however get me to realize the nature of
the bug, and adapt the test case to test more interesting behavior. In
turn, that uncovered the rest of the bug which I've fixed here.
This should fix two new asserts that showed up in the vectorize nightly
tester.
llvm-svn: 170333
Richard Osborne [Mon, 17 Dec 2012 13:55:49 +0000 (13:55 +0000)]
Fix parameter name in prototypes in XCoreDisassembler.
llvm-svn: 170332
Chandler Carruth [Mon, 17 Dec 2012 13:51:03 +0000 (13:51 +0000)]
Hoist a convertValue call to the two paths where it is needed.
I noticed this while looking at r170328. We only ever do a vector
rewrite when the alloca *is* the vector type, so it's good to not paper
over bugs here by doing a convertValue that isn't needed.
llvm-svn: 170331
Richard Osborne [Mon, 17 Dec 2012 13:50:04 +0000 (13:50 +0000)]
Add instruction encodings / disassembly support for rus instructions.
llvm-svn: 170330
Kostya Serebryany [Mon, 17 Dec 2012 13:43:47 +0000 (13:43 +0000)]
[asan] asan_allocator2: don't use TLS and fix calloc
llvm-svn: 170329
Chandler Carruth [Mon, 17 Dec 2012 13:41:21 +0000 (13:41 +0000)]
Hoist the insertVector helper to be a static helper.
This will allow its use inside of memcpy rewriting as well. This routine
is more complex than extractVector, and some of its uses are not 100%
where I want them to be so there is still some work to do here.
While this can technically change the output in some cases, it shouldn't
be a change that matters -- IE, it can leave some dead code lying around
that prior versions did not, etc.
Yet another step in the refactorings leading up to the solution to the
last component of PR14478.
llvm-svn: 170328
Richard Osborne [Mon, 17 Dec 2012 13:20:37 +0000 (13:20 +0000)]
Add instruction encodings for ZEXT and SEXT.
Previously these were marked with the wrong format.
llvm-svn: 170327
Dmitry Vyukov [Mon, 17 Dec 2012 13:07:35 +0000 (13:07 +0000)]
tsan: correct llvm libc++ name
llvm-svn: 170326
Chandler Carruth [Mon, 17 Dec 2012 13:07:30 +0000 (13:07 +0000)]
Lift the extractVector helper all the way out to a static helper function.
The method helpers all implicitly act upon the alloca, and what we
really want is a fully generic helper. Doing memcpy rewrites is more
special than all other rewrites because we are at times rewriting
instructions which touch pointers *other* than the alloca. As
a consequence all of the helpers needed by memcpy rewriting of
sub-vector copies will need to be generalized fully.
Note that all of these helpers ({insert,extract}{Integer,Vector}) are
woefully uncommented. I'm going to go back through and document them
once I get the factoring correct.
No functionality changed.
llvm-svn: 170325
Chandler Carruth [Mon, 17 Dec 2012 12:50:21 +0000 (12:50 +0000)]
Factor the vector load rewriting into a more generic form.
This makes it suitable for use in rewriting memcpy in the presence of
subvector memcpy intrinsics.
No functionality changed.
llvm-svn: 170324
Richard Osborne [Mon, 17 Dec 2012 12:29:31 +0000 (12:29 +0000)]
Add instruction encodings / disassembly support for 2r instructions.
llvm-svn: 170323
Richard Osborne [Mon, 17 Dec 2012 12:26:29 +0000 (12:26 +0000)]
Add instruction encodings / disassembly support for 0r instructions.
llvm-svn: 170322
Richard Osborne [Mon, 17 Dec 2012 12:13:46 +0000 (12:13 +0000)]
Simplify assertion in XCoreInstPrinter.
llvm-svn: 170321
Richard Osborne [Mon, 17 Dec 2012 12:13:41 +0000 (12:13 +0000)]
Update comments to match recommended doxygen style.
llvm-svn: 170320
Richard Osborne [Mon, 17 Dec 2012 12:13:32 +0000 (12:13 +0000)]
Remove unnecessary include.
llvm-svn: 170319
Duncan Sands [Mon, 17 Dec 2012 12:02:36 +0000 (12:02 +0000)]
Fix typo that results in new landing pads not getting a name, fixing PR14617.
Patch by Chris Toshok.
llvm-svn: 170318
Duncan Sands [Mon, 17 Dec 2012 11:43:15 +0000 (11:43 +0000)]
Fix comment typo.
llvm-svn: 170317
Daniel Jasper [Mon, 17 Dec 2012 11:29:41 +0000 (11:29 +0000)]
Fix several formatting problems.
More specifically:
- Improve formatting of static initializers.
- Fix formatting of lines comments in enums.
- Fix formmating of trailing line comments.
llvm-svn: 170316
Kostya Serebryany [Mon, 17 Dec 2012 09:06:25 +0000 (09:06 +0000)]
[asan] asan_alocator2: implement quarantine and Reallocate
llvm-svn: 170315
Dmitry Vyukov [Mon, 17 Dec 2012 08:52:05 +0000 (08:52 +0000)]
tsan: add __has_feature(thread_sanitizer)
llvm-svn: 170314
Kostya Serebryany [Mon, 17 Dec 2012 07:54:29 +0000 (07:54 +0000)]
[asan] implement AsanChunkFifoList via IntrusiveList<AsanChunk>
llvm-svn: 170313
Han Ming Ong [Mon, 17 Dec 2012 07:33:07 +0000 (07:33 +0000)]
<rdar://problem/
12890901>
Capturing thread name during profiling.
llvm-svn: 170312
Dmitry Vyukov [Mon, 17 Dec 2012 07:16:54 +0000 (07:16 +0000)]
tsan: update docs
llvm-svn: 170311
Kostya Serebryany [Mon, 17 Dec 2012 06:31:53 +0000 (06:31 +0000)]
[asan] asan_alocator2: implement free() stacks and actually make malloc/free stacks work
llvm-svn: 170310
Chandler Carruth [Mon, 17 Dec 2012 06:24:36 +0000 (06:24 +0000)]
Clean up a small (messy) section of Clang's release notes for 3.2.
llvm-svn: 170309
Craig Topper [Mon, 17 Dec 2012 06:13:48 +0000 (06:13 +0000)]
Remove EFLAGS from the BLSI/BLSMSK/BLSR patterns. The nodes created by DAG combine don't contain an EFLAGS def.
llvm-svn: 170308
Craig Topper [Mon, 17 Dec 2012 05:12:30 +0000 (05:12 +0000)]
Simplify BMI ANDN matching to use patterns instead of a DAG combine. Also add ANDN to isDefConvertible.
llvm-svn: 170305
Craig Topper [Mon, 17 Dec 2012 05:02:29 +0000 (05:02 +0000)]
Add rest of BMI/BMI2 instructions to the folding tables as well as popcnt and lzcnt.
llvm-svn: 170304
Craig Topper [Mon, 17 Dec 2012 04:55:07 +0000 (04:55 +0000)]
Remove store forms of DEC/INC from isDefConvertible. Since they are stores they don't have a register def.
llvm-svn: 170303
Bill Schmidt [Mon, 17 Dec 2012 04:20:17 +0000 (04:20 +0000)]
This patch fixes PR13624, which notes a 64-bit PowerPC ELF ABI
incompatibility with how complex values are returned. It is sufficient
to flag all complex types as direct rather than indirect.
A new test case is provided that checks correct IR generation for the
various supported flavors of _Complex.
llvm-svn: 170302
Chandler Carruth [Mon, 17 Dec 2012 04:07:37 +0000 (04:07 +0000)]
Fix the first part of PR14478: memset now works.
PR14478 highlights a serious problem in SROA that simply wasn't being
exercised due to a lack of vector input code mixed with C-library
function calls. Part of SROA was written carefully to handle subvector
accesses via memset and memcpy, but the rewriter never grew support for
this. Fixing it required refactoring the subvector access code in other
parts of SROA so it could be shared, and then fixing the splat formation
logic and using subvector insertion (this patch).
The PR isn't quite fixed yet, as memcpy is still broken in the same way.
I'm starting on that series of patches now.
Hopefully this will be enough to bring the bullet benchmark back to life
with the bb-vectorizer enabled, but that may require fixing memcpy as
well.
llvm-svn: 170301
Chandler Carruth [Mon, 17 Dec 2012 04:07:35 +0000 (04:07 +0000)]
Extract the logic for inserting a subvector into a vector alloca.
No functionality changed. Another step of refactoring toward solving
PR14487.
llvm-svn: 170300
Chandler Carruth [Mon, 17 Dec 2012 04:07:30 +0000 (04:07 +0000)]
Lift the integer splat computation into a helper function.
No functionality changed. Refactoring leading up to the fix for PR14478
which requires some significant changes to the memset and memcpy
rewriting.
llvm-svn: 170299
Craig Topper [Mon, 17 Dec 2012 03:56:00 +0000 (03:56 +0000)]
Add debug prints for when optimizeLoadInstr folds a load.
llvm-svn: 170298
Nico Weber [Mon, 17 Dec 2012 03:51:09 +0000 (03:51 +0000)]
IdentifierResolver: Remove an unnecessary include and an unused parameter.
llvm-svn: 170297
Dmitri Gribenko [Sun, 16 Dec 2012 19:55:39 +0000 (19:55 +0000)]
Documentation: add a missing word
llvm-svn: 170296
Richard Osborne [Sun, 16 Dec 2012 18:06:30 +0000 (18:06 +0000)]
Add tests for disassembly of 1r XCore instructions.
llvm-svn: 170295
Dmitri Gribenko [Sun, 16 Dec 2012 17:38:09 +0000 (17:38 +0000)]
Clang ReleaseNotes: add information about documentation comments support
llvm-svn: 170294
Richard Osborne [Sun, 16 Dec 2012 17:37:34 +0000 (17:37 +0000)]
Add instruction encodings and disassembly for 1r instructions.
llvm-svn: 170293
Richard Osborne [Sun, 16 Dec 2012 17:29:14 +0000 (17:29 +0000)]
Add XCore disassembler.
Currently there is no instruction encoding info and
XCoreDisassembler::getInstruction() always returns Fail. I intend to add
instruction encodings and tests in follow on commits.
llvm-svn: 170292
Richard Osborne [Sun, 16 Dec 2012 16:46:31 +0000 (16:46 +0000)]
Remove invalid instruction encodings.
llvm-svn: 170291
Richard Osborne [Sun, 16 Dec 2012 16:46:28 +0000 (16:46 +0000)]
Mark anything deriving from PseudoInstXCore as a pseudo instruction.
llvm-svn: 170290
Richard Osborne [Sun, 16 Dec 2012 16:46:24 +0000 (16:46 +0000)]
Set instruction size correctly in XCoreInstrFormats.td
llvm-svn: 170289
Richard Osborne [Sun, 16 Dec 2012 16:20:48 +0000 (16:20 +0000)]
Change XCoreAsmPrinter to lower MachineInstrs to MCInsts before emission.
This change adds XCoreMCInstLower to do the lowering to MCInst and
XCoreInstPrinter to print the MCInsts.
llvm-svn: 170288
Richard Osborne [Sun, 16 Dec 2012 15:59:02 +0000 (15:59 +0000)]
Replace ${:comment} with the comment symbol.
llvm-svn: 170286
Dmitri Gribenko [Sun, 16 Dec 2012 12:57:36 +0000 (12:57 +0000)]
Declare class DwarfDebug before use instead of relying on a forward declaration
from some other unrelated header.
Patch by Kai.
llvm-svn: 170284
Dmitri Gribenko [Sun, 16 Dec 2012 11:25:45 +0000 (11:25 +0000)]
Documentation: AutomaticReferenceCounting.rst: use CSS section numbering.
This enables us to use the same document structure as in other files.
llvm-svn: 170283
Craig Topper [Sun, 16 Dec 2012 05:58:32 +0000 (05:58 +0000)]
Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end of the cache. Fixes PR14570.
llvm-svn: 170281
NAKAMURA Takumi [Sun, 16 Dec 2012 04:23:20 +0000 (04:23 +0000)]
MCPureStreamer.cpp: Try to fix build, pruning EmitDebugLabel().
llvm-svn: 170280
Reed Kotler [Sun, 16 Dec 2012 04:00:45 +0000 (04:00 +0000)]
This patch is needed to make c++ exceptions work for mips16.
Mips16 is really a processor decoding mode (ala thumb 1) and in the same
program, mips16 and mips32 functions can exist and can call each other.
If a jal type instruction encounters an address with the lower bit set, then
the processor switches to mips16 mode (if it is not already in it). If the
lower bit is not set, then it switches to mips32 mode.
The linker knows which functions are mips16 and which are mips32.
When relocation is performed on code labels, this lower order bit is
set if the code label is a mips16 code label.
In general this works just fine, however when creating exception handling
tables and dwarf, there are cases where you don't want this lower order
bit added in.
This has been traditionally distinguished in gas assembly source by using a
different syntax for the label.
lab1: ; this will cause the lower order bit to be added
lab2=. ; this will not cause the lower order bit to be added
In some cases, it does not matter because in dwarf and debug tables
the difference of two labels is used and in that case the lower order
bits subtract each other out.
To fix this, I have added to mcstreamer the notion of a debuglabel.
The default is for label and debug label to be the same. So calling
EmitLabel and EmitDebugLabel produce the same result.
For various reasons, there is only one set of labels that needs to be
modified for the mips exceptions to work. These are the "$eh_func_beginXXX"
labels.
Mips overrides the debug label suffix from ":" to "=." .
This initial patch fixes exceptions. More changes most likely
will be needed to DwarfCFException to make all of this work
for actual debugging. These changes will be to emit debug labels in some
places where a simple label is emitted now.
Some historical discussion on this from gcc can be found at:
http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html
http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html
llvm-svn: 170279
Sean Silva [Sun, 16 Dec 2012 00:23:40 +0000 (00:23 +0000)]
docs: Fix completely broken adornment structure.
The adornment:
===
Foo
===
is for titles, not sections.
llvm-svn: 170278
Dmitri Gribenko [Sat, 15 Dec 2012 21:10:51 +0000 (21:10 +0000)]
Documentation: random cleanups. Use monospaced font where appropriate,
highlight console output with "code-block:: console", etc.
llvm-svn: 170276
Dmitri Gribenko [Sat, 15 Dec 2012 20:41:17 +0000 (20:41 +0000)]
Documentation: convert InternalsManual.html to reST
Patch by Anastasi Voitova with with small fixes by me.
llvm-svn: 170275
Kostya Serebryany [Sat, 15 Dec 2012 18:36:23 +0000 (18:36 +0000)]
[sanitizer] fix a bug that has crept into the sanitizer allocator and caused SEGV on allocations between 1Mb and 2Mb, improve the test
llvm-svn: 170274
Benjamin Kramer [Sat, 15 Dec 2012 16:47:44 +0000 (16:47 +0000)]
X86: Add a couple of target-specific dag combines that turn VSELECTS into psubus if possible.
We match the pattern "x >= y ? x-y : 0" into "subus x, y" and two special cases
if y is a constant. DAGCombiner canonicalizes those so we first have to undo the
canonicalization for those cases. The pattern occurs in gzip when the loop
vectorizer is enabled. Part of PR14613.
llvm-svn: 170273
Dmitri Gribenko [Sat, 15 Dec 2012 14:25:25 +0000 (14:25 +0000)]
Documentation: LanguageExtensions.rst: convert link to :doc: style and fix up
heading underline.
llvm-svn: 170272
Chandler Carruth [Sat, 15 Dec 2012 09:31:54 +0000 (09:31 +0000)]
Add a corollary test for PR14572. We got this code path correct already.
llvm-svn: 170271