Michael J. Spencer [Tue, 29 Nov 2011 18:00:06 +0000 (18:00 +0000)]
MC/X86/COFF: Allow quotes in names when targeting MS/Windows,
as MC is the only assembler we support.
This splits MS/Windows and GNU/Windows ASM infos into two seperate classes.
While there is currently only one difference, full MS C++ ABI support will
require many more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145409
91177308-0d34-0410-b5e6-
96231b3b80d8
Danil Malyshev [Tue, 29 Nov 2011 17:40:10 +0000 (17:40 +0000)]
Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145408
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Tue, 29 Nov 2011 15:00:45 +0000 (15:00 +0000)]
Fixed vsqrt.ss intrinsic usage - order of input operands was wrong.
Added a test.
Thanks Bruno for reviewing the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145403
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 29 Nov 2011 07:58:09 +0000 (07:58 +0000)]
Fix shuffle decoding for memory forms for (V)SHUFPS/D.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145392
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 29 Nov 2011 07:49:05 +0000 (07:49 +0000)]
Fix issues in shuffle decoding around VPERM* instructions. Fix shuffle decoding for VSHUFPS/D for 256-bit types. Add pattern matching for memory forms of VPERMILPS/VPERMILPD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145390
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 29 Nov 2011 07:47:04 +0000 (07:47 +0000)]
[Win32] Catch exceptions (eg. segfault) on waiting for invoked clang from the driver.
clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused.
llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value.
Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145389
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 29 Nov 2011 06:40:50 +0000 (06:40 +0000)]
lit/TestRunner.py: Try to catch ERROR_FILE_NOT_FOUND, too.
Thanks to Francois, to let me know.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145381
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 29 Nov 2011 06:11:56 +0000 (06:11 +0000)]
Install llvmCore to /usr/local. <rdar://problem/
10390708>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145378
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 29 Nov 2011 05:37:58 +0000 (05:37 +0000)]
Fix VINSERTF128/VEXTRACTF128 to be marked as FP instructions. Allow execution dependency fix pass to convert them to their integer equivalents when AVX2 is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145376
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 29 Nov 2011 03:57:34 +0000 (03:57 +0000)]
Correctly mark VPERM2F128 as being an FP instruction and add execution domain fixing support to convert it to VPERM2I128 for AVX2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145370
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 29 Nov 2011 02:39:58 +0000 (02:39 +0000)]
MachO doesn't support the protected visibility. Don't default to 'global' here. <rdar://problem/
10396775>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145368
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 29 Nov 2011 02:16:38 +0000 (02:16 +0000)]
SCEV fix. In general, Add/Mul expressions should not inherit NSW/NUW.
This reverts r139450, fixes r139453, and adds much needed comments and a
unit test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145367
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 29 Nov 2011 02:06:35 +0000 (02:06 +0000)]
Make SCEV print <nsw><nuw> for Add/MulExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145364
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 29 Nov 2011 02:05:23 +0000 (02:05 +0000)]
Filecheckize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145363
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Tue, 29 Nov 2011 02:04:48 +0000 (02:04 +0000)]
Remove content that has been moved to Clang release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145362
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Tue, 29 Nov 2011 02:04:44 +0000 (02:04 +0000)]
Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145361
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 29 Nov 2011 01:43:20 +0000 (01:43 +0000)]
On MachO, the pointer to the personality function should always be in the
non_lazy_symbol_pointers section (__IMPORT,__pointers). Ignore the 'hidden' part
since that will place it in the wrong section.
<rdar://problem/
10443720>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145356
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 01:31:52 +0000 (01:31 +0000)]
build/cmake: Switch to using llvm-build computed dependencies.
- I verified locally that the current dependency lists are identical.
- This makes add_llvm_library_dependencies() a no-op. I'll remove it once this
change passes the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145355
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 29 Nov 2011 01:18:23 +0000 (01:18 +0000)]
Zap some completely ridiculous code. There's probably a miscompile here, but I don't really want to try to write a testcase involving an invoke returning a pointer to a varargs function...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145347
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 29 Nov 2011 01:15:25 +0000 (01:15 +0000)]
Better fix for ARM MOVT relocation encoding of thumb bit.
Replaces r145318 with a more targetted fix for the relocation handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145346
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 29 Nov 2011 00:52:04 +0000 (00:52 +0000)]
Reenable this IndVars unit test.
SCEV can't optimize undef in all cases, which is a separate issue from this test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145343
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:33:14 +0000 (00:33 +0000)]
build: Update CMakeLists.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145341
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 29 Nov 2011 00:32:43 +0000 (00:32 +0000)]
Add a link from the LLVM release notes to the Clang release notes.
I suspect we could profitably remove/move some of the bullet points
under Clang here to the Clang notes in order to keep things clean on
both sides. Unless I hear objections I'll start doing that once folks
have read over the Clang notes a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145340
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:25:57 +0000 (00:25 +0000)]
edis: Sink EDMain.cpp into lib/MC/MCDisassembler.
- This fixes some layering violations and matches how we handle the llvm-c lib,
for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145338
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:06:58 +0000 (00:06 +0000)]
edis: Don't do the target initialization in EDGetDisassembler, this is contrary
to the way we currently expect target selection to work -- clients are supposed
to have control over what targets are available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145331
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:06:55 +0000 (00:06 +0000)]
llvm-c: Add a few missing InitializeAll* functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145330
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:06:53 +0000 (00:06 +0000)]
build/Make: edis isn't built as a shared library anymore, remove related cruft from the Makefile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145329
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 29 Nov 2011 00:06:50 +0000 (00:06 +0000)]
llvmbuild/CMake: Update CMake output fragment to include explicit library
dependency information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145328
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Nov 2011 23:55:49 +0000 (23:55 +0000)]
Expand the part about CFI a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145324
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 28 Nov 2011 23:39:25 +0000 (23:39 +0000)]
Add documentation for llvm-cov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145319
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 28 Nov 2011 23:39:00 +0000 (23:39 +0000)]
Thumb2 only force the fixup thumb bit for data relocations.
rdar://
10493453
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145318
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 28 Nov 2011 23:32:19 +0000 (23:32 +0000)]
Add a missing safety check to ProcessUGT_ADDCST_ADD. Fixes PR11438.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145316
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 28 Nov 2011 23:23:58 +0000 (23:23 +0000)]
Remove obsolete FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145313
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 28 Nov 2011 22:48:22 +0000 (22:48 +0000)]
Make SelectionDAG::InferPtrAlignment use llvm::ComputeMaskedBits instead of duplicating the logic for globals. Make llvm::ComputeMaskedBits handle GlobalVariables slightly more aggressively, to match what InferPtrAlignment knew how to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145304
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 28 Nov 2011 22:37:34 +0000 (22:37 +0000)]
Revert r145273 and fix in SelectionDAG::InferPtrAlignment() instead.
Conservatively returns zero when the GV does not specify an alignment nor is it
initialized. Previously it returns ABI alignment for type of the GV. However, if
the type is a "packed" type, then the under-specified alignments is attached to
the load / store instructions. In that case, the alignment of the type cannot be
trusted.
rdar://
10464621
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145300
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 28 Nov 2011 22:19:32 +0000 (22:19 +0000)]
Fix some possible gcc-4.2 may be used uninitialized warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145292
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 28 Nov 2011 22:14:02 +0000 (22:14 +0000)]
Don't define these unless we plan to use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145289
91177308-0d34-0410-b5e6-
96231b3b80d8
Joe Abbey [Mon, 28 Nov 2011 22:07:12 +0000 (22:07 +0000)]
Merging two bullet points into one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145287
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 28 Nov 2011 20:42:56 +0000 (20:42 +0000)]
DAG combine should not increase alignment of loads / stores with alignment less
than ABI alignment. These are loads / stores from / to "packed" data structures.
Their alignments are intentionally under-specified.
rdar://
10301431
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145273
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 28 Nov 2011 20:27:23 +0000 (20:27 +0000)]
Add missing avx pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145272
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Mon, 28 Nov 2011 20:04:12 +0000 (20:04 +0000)]
Add OpenCL blurb to release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 28 Nov 2011 19:59:09 +0000 (19:59 +0000)]
80-column.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145267
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 28 Nov 2011 19:23:13 +0000 (19:23 +0000)]
Remove dead llvm.eh.sjlj.dispatchsetup intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145263
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 28 Nov 2011 19:22:09 +0000 (19:22 +0000)]
Remove the temporary flag -disable-unroll-scev and dead code.
SCEV should now be used for trip count analysis, not LoopInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145262
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 28 Nov 2011 18:50:37 +0000 (18:50 +0000)]
Add back a line I deleted by accident in r145141. Fixes uninitialized variable warnings and runtime failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145256
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 28 Nov 2011 18:20:09 +0000 (18:20 +0000)]
Add object file related release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145254
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 28 Nov 2011 18:03:11 +0000 (18:03 +0000)]
Explain what ExeDepsFix does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145253
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Nov 2011 17:06:58 +0000 (17:06 +0000)]
Fix spelling/grammar errors found by Duncan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145250
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 28 Nov 2011 16:56:38 +0000 (16:56 +0000)]
Handle more cases in APInt::getLowBitsSet's fast path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145249
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 28 Nov 2011 11:45:10 +0000 (11:45 +0000)]
Support a 'final' release candidate tag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145243
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 28 Nov 2011 10:31:27 +0000 (10:31 +0000)]
Silence wrong warnings from GCC about variables possibly being used
uninitialized: GCC doesn't understand that the variables are only used
if !UseImm, in which case they have been initialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145239
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 28 Nov 2011 10:14:51 +0000 (10:14 +0000)]
Add X86 instruction selection for VPERM2I128 when AVX2 is enabled. Merge VPERMILPS/VPERMILPD detection since they are pretty similar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145238
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 28 Nov 2011 07:59:52 +0000 (07:59 +0000)]
Add an optional separate install prefix for internal components. rdar://
10217046
Some files installed by clang are not relevant for general users and we'd like
to be able to install them to a different location. This adds a new
--with-internal-prefix configure option and a corresponding PROJ_internal_prefix
makefile variable, which defaults to the standard prefix. A tool makefile
can specify that it should be installed to this internal prefix by defining
INTERNAL_TOOL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145234
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Nov 2011 05:09:15 +0000 (05:09 +0000)]
test/lit.cfg: Enable the feature 'asserts' to check output of llc -version.
llc knows whether he is compiled with -DNDEBUG.
| Optimized build with assertions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145230
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Nov 2011 01:55:08 +0000 (01:55 +0000)]
lit/TestRunner.py: Use RemoveForce().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145223
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Nov 2011 01:55:01 +0000 (01:55 +0000)]
lit/TestRunner.py: [Win32] Introduce WinWaitReleased(f), to wait for file handles to be released by children.
When wait() has finished, opened handles (especially writing stdout to file) might not be released immediately.
To wait for released, poll to attempt renaming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145222
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 28 Nov 2011 01:46:19 +0000 (01:46 +0000)]
Add a blurb about the new ExecutionDepsFix pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145220
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 28 Nov 2011 01:14:24 +0000 (01:14 +0000)]
Make isCommutedVSHUFP more like the way isCommutedSHUFP is handled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145218
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Nov 2011 01:07:19 +0000 (01:07 +0000)]
configure, config.h.in: Regenerate.
config.h.cmake: Synchronize to config.h.in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145217
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Mon, 28 Nov 2011 00:49:01 +0000 (00:49 +0000)]
use llvm-config.h in public header
The config.h file's macros collide with other projects that include
LLVM and shouldn't get exported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145215
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Mon, 28 Nov 2011 00:48:58 +0000 (00:48 +0000)]
rename ENABLE_THREADS to LLVM_ENABLE_THREADS
Now that it needs to be exported in a public header (Valgrind.h)
it should be prefixed to avoid collision with other projects.
Add it to llvm-config.h as well.
This'll require regenerating the configure script after this
commit, but I don't have the required autoconf version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145214
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Mon, 28 Nov 2011 00:48:53 +0000 (00:48 +0000)]
update description of LLVM_DEFAULT_TARGET_TRIPLE
It was out of sync with the description in configure.ac/config.h.in.
Also re-alphabetize it from its position when it was LLVM_HOST_TRIPLE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145213
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 27 Nov 2011 23:22:20 +0000 (23:22 +0000)]
Place the "cfg checksum" around a test. This was recently added in April 2011 to
gcc, though I thought it was older (my gcc 4.4 has it as a local patch. Whoops!)
This fixes PR10589.
Also add some debugging statements.
Remove GcnoFiles, the mapping from CompilationUnit to raw_ostream. Now that we
start by iterating over each CU and descending into them, there's no need to
maintain a mapping.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 22:39:23 +0000 (22:39 +0000)]
dwarf parsing stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 22:36:22 +0000 (22:36 +0000)]
first pass of writing complete!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145206
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 22:12:32 +0000 (22:12 +0000)]
arm and carve out a place ot mention segmented stacks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145204
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 27 Nov 2011 22:05:46 +0000 (22:05 +0000)]
Add a description of the status of segmented stacks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145201
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 22:03:34 +0000 (22:03 +0000)]
optimize, mc, x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145200
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 27 Nov 2011 21:41:12 +0000 (21:41 +0000)]
Merge detecting and handling for VSHUFPSY and VSHUFPDY since a lot of the code was similar for both.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145199
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 21:30:28 +0000 (21:30 +0000)]
some writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145198
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 21:02:12 +0000 (21:02 +0000)]
fix some out-of-date attribution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145197
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 20:51:47 +0000 (20:51 +0000)]
distribute various bullets to different sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145196
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 20:18:00 +0000 (20:18 +0000)]
Prevent rotating the blocks of a loop (and thus getting a backedge to be
fallthrough) in cases where we might fail to rotate an exit to an outer
loop onto the end of the loop chain.
Having *some* rotation, but not performing this rotation, is the primary
fix of thep performance regression with -enable-block-placement for
Olden/em3d (a whopping 30% regression). Still working on reducing the
test case that actually exercises this and the new rotation strategy out
of this code, but I want to check if this regresses other test cases
first as that may indicate it isn't the correct fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 19:38:20 +0000 (19:38 +0000)]
rewrite the known problems section. Including a short list of individual bugs per target isn't particularly useful. Link to the target features matrix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145193
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 19:26:30 +0000 (19:26 +0000)]
move the detailed information about the EH rewrite to a comment, Bill is
blog'izing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145192
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 18:53:41 +0000 (18:53 +0000)]
tweak subprojects' section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145191
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 18:47:37 +0000 (18:47 +0000)]
some random notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145190
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 18:13:47 +0000 (18:13 +0000)]
remove a test that is using old-style llvm.dbg intrinsics, apparently only
fails on ppc and arm hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145188
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 13:34:33 +0000 (13:34 +0000)]
Take two on rotating the block ordering of loops. My previous attempt
was centered around the premise of laying out a loop in a chain, and
then rotating that chain. This is good for preserving contiguous layout,
but bad for actually making sane rotations. In order to keep it safe,
I had to essentially make it impossible to rotate deeply nested loops.
The information needed to correctly reason about a deeply nested loop is
actually available -- *before* we layout the loop. We know the inner
loops are already fused into chains, etc. We lose information the moment
we actually lay out the loop.
The solution was the other alternative for this algorithm I discussed
with Benjamin and some others: rather than rotating the loop
after-the-fact, try to pick a profitable starting block for the loop's
layout, and then use our existing layout logic. I was worried about the
complexity of this "pick" step, but it turns out such complexity is
needed to handle all the important cases I keep teasing out of benchmarks.
This is, I'm afraid, a bit of a work-in-progress. It is still
misbehaving on some likely important cases I'm investigating in Olden.
It also isn't really tested. I'm going to try to craft some interesting
nested-loop test cases, but it's likely to be extremely time consuming
and I don't want to go there until I'm sure I'm testing the correct
behavior. Sadly I can't come up with a way of getting simple, fine
grained test cases for this logic. We need complex loop structures to
even trigger much of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145183
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 10:37:47 +0000 (10:37 +0000)]
Revert r145180 as it is causing test failures on all the bots.
Original commit message:
Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 10:32:16 +0000 (10:32 +0000)]
Fix an impressive type-o / spell-o Duncan noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145181
91177308-0d34-0410-b5e6-
96231b3b80d8
Danil Malyshev [Sun, 27 Nov 2011 10:12:52 +0000 (10:12 +0000)]
Fixed ObjectFile functions:
- getSymbolOffset() renamed as getSymbolFileOffset()
- getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
- added getRelocationOffset()
- fixed MachOObjectFile::getSymbolSize()
- fixed MachOObjectFile::getSymbolSection()
- fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145180
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 09:22:53 +0000 (09:22 +0000)]
Rework a bit of the implementation of loop block rotation to not rely so
heavily on AnalyzeBranch. That routine doesn't behave as we want given
that rotation occurs mid-way through re-ordering the function. Instead
merely check that there are not unanalyzable branching constructs
present, and then reason about the CFG via successor lists. This
actually simplifies my mental model for all of this as well.
The concrete result is that we now will rotate more loop chains. I've
added a test case from Olden highlighting the effect. There is still
a bit more to do here though in order to regain all of the performance
in Olden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145179
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 08:42:07 +0000 (08:42 +0000)]
Eli managed to kill off llvm.membarrier in llvm 3.0 also, this means
that mainline needs no autoupgrade logic for intrinsics yet, woohoo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145178
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 08:32:32 +0000 (08:32 +0000)]
add some final random notes, I've completed my pass over all the commits.
I'll work on turning this into something intelligible tomorrow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145177
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 08:18:55 +0000 (08:18 +0000)]
The llvm.atomic intrinsics *were* removed in LLVM 3.0 (in r141333), remove the
autoupgrade logic for 2.9 and before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145176
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 07:42:04 +0000 (07:42 +0000)]
remove autoupgrade support for old forms of llvm.prefetch and the old
trampoline forms. Both of these were correct in LLVM 3.0, and we don't
need to support LLVM 2.9 and earlier in mainline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145174
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 07:37:53 +0000 (07:37 +0000)]
add some notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145173
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 06:56:53 +0000 (06:56 +0000)]
remove asmparsing and documentation support for "volatile load", which was only produced by LLVM 2.9 and earlier. LLVM 3.0 and later prefers "load volatile".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145172
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 06:54:59 +0000 (06:54 +0000)]
Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 06:24:49 +0000 (06:24 +0000)]
some notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145170
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 06:18:33 +0000 (06:18 +0000)]
remove autoupgrade support for really old-style debug info intrinsics.
I think this is the last of autoupgrade that can be removed in 3.1.
Can the atomic upgrade stuff also go?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 06:10:54 +0000 (06:10 +0000)]
remove some old autoupgrade logic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145167
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 05:56:16 +0000 (05:56 +0000)]
remove autoupgrade support for LLVM 2.9 exception stuff. Mainline supports
LLVM 3.0 and later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 05:48:27 +0000 (05:48 +0000)]
remove support for reading llvm 2.9 .bc files. LLVM 3.1 is only compatible back to 3.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 27 Nov 2011 05:47:57 +0000 (05:47 +0000)]
add some notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145163
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Sun, 27 Nov 2011 05:16:58 +0000 (05:16 +0000)]
Add several new instructions supported by the latest MicroBlaze.
These instructions are not generated by the backend yet, this will come in a later commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145161
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 27 Nov 2011 01:48:54 +0000 (01:48 +0000)]
Partially revert r145157 to quiet an unhappy buildbot.
Removing that buildbot would be a better solution, but this is at least
a temporary workaround.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145160
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Sun, 27 Nov 2011 01:36:20 +0000 (01:36 +0000)]
Optimize comparison against 0 in conditional instructions.
Fix a couple of 80-column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145159
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 27 Nov 2011 00:38:03 +0000 (00:38 +0000)]
Introduce a loop block rotation optimization to the new block placement
pass. This is designed to achieve one of the important optimizations
that the old code placement pass did, but more simply.
This is a somewhat rough and *very* conservative version of the
transform. We could get a lot fancier here if there are profitable cases
to do so. In particular, this only looks for a single pattern, it
insists that the loop backedge being rotated away is the last backedge
in the chain, and it doesn't provide any means of doing better in-loop
placement due to the rotation. However, it appears that it will handle
the important loops I am finding in the LLVM test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145158
91177308-0d34-0410-b5e6-
96231b3b80d8