Eli Friedman [Wed, 11 Sep 2013 00:36:54 +0000 (00:36 +0000)]
Get rid of unused isPodLike definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190461
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Rieck [Wed, 11 Sep 2013 00:36:48 +0000 (00:36 +0000)]
Support ANSI escape code on Windows
In some cases (e.g. when a build system pipes stderr) the Windows console
API cannot be used to color output. For these, provide a way to switch to
ANSI escape codes. This is required for Clang's -fansi-escape-codes option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190460
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 11 Sep 2013 00:27:23 +0000 (00:27 +0000)]
Fixed typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190459
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 11 Sep 2013 00:23:14 +0000 (00:23 +0000)]
[python-bindings] Added code for loading a module from bitcode, getset its datalayout, getset its target, dump it, print it to a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190458
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 11 Sep 2013 00:23:10 +0000 (00:23 +0000)]
[python-bindings] Added bindings for LLVMContextRef and a test for creating a new context or getting the global context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190457
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 11 Sep 2013 00:23:08 +0000 (00:23 +0000)]
[python-bindings] Implemented the PassRegistry class and the calls to initialize/shutdown llvm. Also included an initialize_llvm declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190456
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 11 Sep 2013 00:23:05 +0000 (00:23 +0000)]
[python-bindings] Removed unused import byref from llvm/disassembler.py.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190455
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 10 Sep 2013 23:45:25 +0000 (23:45 +0000)]
Don't assert on invalid loop vectorization hint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190450
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 10 Sep 2013 23:22:56 +0000 (23:22 +0000)]
Fix another mistake in r190442.
Sorry about that; I'll try to be more careful about DEBUG mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190449
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 10 Sep 2013 23:18:14 +0000 (23:18 +0000)]
Fix unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190448
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 10 Sep 2013 23:09:24 +0000 (23:09 +0000)]
Fix mistake in r190442.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190446
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 10 Sep 2013 22:42:31 +0000 (22:42 +0000)]
Remove unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190442
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 10 Sep 2013 21:49:37 +0000 (21:49 +0000)]
Hoist section call out of loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190440
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Tue, 10 Sep 2013 21:32:42 +0000 (21:32 +0000)]
Try to unbreak mingw32 buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190438
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 10 Sep 2013 19:57:05 +0000 (19:57 +0000)]
Fix missing CHECK-LABELs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190426
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 10 Sep 2013 19:55:24 +0000 (19:55 +0000)]
Teach ScalarEvolution about pointer address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190425
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 10 Sep 2013 19:54:54 +0000 (19:54 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190424
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Tue, 10 Sep 2013 19:45:51 +0000 (19:45 +0000)]
Add getenv() wrapper that works on multibyte environment variable.
On Windows, character encoding of multibyte environment variable varies
depending on settings. The only reliable way to handle it I think is to use
GetEnvironmentVariableW().
GetEnvironmentVariableW() works on wchar_t string, which is on Windows UTF16
string. That's not ideal because we use UTF-8 as the internal encoding in LLVM.
This patch defines a wrapper function which takes and returns UTF-8 string for
GetEnvironmentVariableW().
The wrapper function does not do any conversion and just forwards the argument
to getenv() on Unix.
Differential Revision: http://llvm-reviews.chandlerc.com/D1612
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190423
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 10 Sep 2013 18:46:15 +0000 (18:46 +0000)]
LoopVectorize: PHI nodes are always at the beginning of a block, no need to scan the whole block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190422
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 10 Sep 2013 18:40:41 +0000 (18:40 +0000)]
Debug Info: create scope children DIEs when the scope DIE is not null.
We try to create the scope children DIEs after we create the scope DIE. But
to avoid emitting empty lexical block DIE, we first check whether a scope
DIE is going to be null, then create the scope children if it is not null.
From the number of children, we decide whether to actually create the scope DIE.
This patch also removes an early exit which checks for a special condition.
It also removes deletion of un-used children DIEs that are generated
because we used to generate children DIEs before the scope DIE.
Deletion of un-used children DIEs may cause problem because we sometimes keep
created DIEs in a member variable of a CU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190421
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 10 Sep 2013 18:35:14 +0000 (18:35 +0000)]
cmake: Install llvm-tblgen again
It was removed in r189130, but it turns out this makes life hard for
folks packaging LLVM and Clang and building the latter based on the
LLVM package.
Note that this only adds back the LLVM tblgen, and it's obviously
not included when LLVM_INSTALL_TOOLCHAIN_ONLY is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190419
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 10 Sep 2013 18:30:07 +0000 (18:30 +0000)]
Debug Info: define a DIRef template.
Specialize the constructors for DIRef<DIScope> and DIRef<DIType> to make sure
the Value is indeed a scope ref and a type ref.
Use DIScopeRef for DIScope::getContext and DIType::getContext and use DITypeRef
for getContainingType and getClassType.
DIScope::generateRef now returns a DIScopeRef instead of a "Value *" for
readability and type safety.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190418
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 10 Sep 2013 17:21:39 +0000 (17:21 +0000)]
ARM: Use the PICADD opcode calculated.
We were figuring out whether to use tPICADD or PICADD, then just using
tPICADD unconditionally anyway. Oops.
A testcase from someone familiar enough with ELF to produce one would
be appreciated. The existing PIC testcase correctly verifies the .s
generated, but that doesn't catch this bug, which only showed up in
direct-to-object mode.
http://llvm.org/bugs/show_bug.cgi?id=17180
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190417
91177308-0d34-0410-b5e6-
96231b3b80d8
Logan Chien [Tue, 10 Sep 2013 15:10:02 +0000 (15:10 +0000)]
Remove unused private member in ARMAsmPrinter.cpp.
This commit removes the unused "AttributeItem" from
ObjectAttributeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190412
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Tue, 10 Sep 2013 14:24:17 +0000 (14:24 +0000)]
Adding LZMA as dep for XML2 on 2.8.0 or higher
LibXML2 config doesn't specify lzma as a dependency, which breaks
cross-compilation builds using new linkers (ld 2.21 or higher).
There is a bug on libxml2 to fix that, but since it's going to take
a while for things to go round and back, so we should have a harmless
addition of the library until then.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190409
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 10 Sep 2013 13:16:56 +0000 (13:16 +0000)]
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. llvm part
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190407
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Tue, 10 Sep 2013 12:22:45 +0000 (12:22 +0000)]
[SystemZ] Update README.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190404
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Tue, 10 Sep 2013 10:20:32 +0000 (10:20 +0000)]
[SystemZ] Add TM and TMY
The main complication here is that TM and TMY (the memory forms) set
CC differently from the register forms. When the tested bits contain
some 0s and some 1s, the register forms set CC to 1 or 2 based on the
value the uppermost bit. The memory forms instead set CC to 1
regardless of the uppermost bit.
Until now, I've tried to make it so that a branch never tests for an
impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the
result will only test for 0 or 1. Originally I'd tried to do the same
thing for TM and TMY by using custom matching code in ISelDAGToDAG.
That ended up being very ugly though, and would have meant duplicating
some of the chain checks that the common isel code does.
I've therefore gone for the simpler alternative of adding an extra
operand to the TM DAG opcode to say whether a memory form would be OK.
This means that the inverse of a "TM;JE" is "TM;JNE" rather than the
more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE".
I suppose that's arguably less confusing though...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190400
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 10 Sep 2013 09:51:43 +0000 (09:51 +0000)]
[mips][msa] Removed unsupported dot product instructions (dotp_[su].b)
The dotp_[su].b instructions never existed in any revision of the MSA spec.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190398
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Tue, 10 Sep 2013 09:50:01 +0000 (09:50 +0000)]
Add test cases for Mips mthc1/mfhc1 instructions. Add check for odd value of register when PFU is 32 bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190397
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Tue, 10 Sep 2013 09:39:55 +0000 (09:39 +0000)]
Remove obsolete code from MipsAsmParser.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190396
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 10 Sep 2013 06:58:00 +0000 (06:58 +0000)]
[python-bindings] Changed test_memory_buffer_create_from_file to just use the generic provided test_file instead of a binary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190389
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 10 Sep 2013 06:57:57 +0000 (06:57 +0000)]
[python bindings] Added code to get the length of a memory buffer. Tests are included.
This is a part of a series of patches that have been sitting fallow on a
personal branch that I have been messing with for a bit.
The patches start to flesh out the python llvm-c wrapper to the point where you can:
1. Load Modules from Bitcode/Dump/Print them.
2. Iterate over Functions from those modules/get their names/dump them.
3. Iterate over the BasicBlocks from said function/get the BB's name/dump it.
4. Iterate over the Instructions in said BasicBlocks/get the instructions
name/dump the instruction.
My main interest in developing this was to be able to gather statistics about
LLVM IR using python scripts to speed up statistical profiling of different IR
level transformations (hence the focus on printing/dumping/getting names).
This is a gift from me to the LLVM community = ).
I am going to be committing the patches slowly over the next bit as I have time
to prepare the patches.
The overall organization follows the c-api like the bindings that are already
implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190388
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 10 Sep 2013 06:01:56 +0000 (06:01 +0000)]
MCObjectFileInfo.cpp: Fix a couple of possible typo(s), s/DwarfPub/DwarfGnuPub/, in r190344.
XFAIL can be removed. (in r190374)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190386
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 10 Sep 2013 00:41:56 +0000 (00:41 +0000)]
Don't use getSetCCResultType for creating a vselect
The vselect mask isn't a setcc.
This breaks in the case when the result of getSetCCResultType
is larger than the vector operands
e.g. %tmp = select i1 %cmp <2 x i8> %a, <2 x i8> %b
when getSetCCResultType returns <2 x i32>, the assertion
that the (MaskTy.getSizeInBits() == Op1.getValueType().getSizeInBits())
is hit.
No test since I don't think I can hit this with any of the current
targets. The R600/SI implementation would break, since it returns a
vector of i1 for this, but it doesn't reach ExpandSELECT for other
reasons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190376
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 10 Sep 2013 00:41:53 +0000 (00:41 +0000)]
Use StringRef::npos for StringRef instead of std::string one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190375
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 10 Sep 2013 00:28:23 +0000 (00:28 +0000)]
llvm/test/DebugInfo/dwarf-public-names.ll: Mark it as XFAIL for PECOFF targets, for now. Investigating.
FIXME: llvm-dwarfdump doesn't handle PECOFF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190374
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 10 Sep 2013 00:20:27 +0000 (00:20 +0000)]
Revert r190366. It was breaking build bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190373
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 9 Sep 2013 23:31:14 +0000 (23:31 +0000)]
Enable -misched-cyclicpath by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190367
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 23:28:15 +0000 (23:28 +0000)]
Use a default value for the prologue's debug location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190366
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 23:07:58 +0000 (23:07 +0000)]
Debug Info: In DIBuilder, the context fields of a TAG_inheritance and a
TAG_friend are updated to use scope reference.
Added testing cases to verify that class with inheritance can be uniqued.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190364
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 22:35:23 +0000 (22:35 +0000)]
Debug Info: move DIScope::getContext back from DwarfDebug.
This partially reverts r190330. DIScope::getContext now returns DIScopeRef
instead of DIScope. We construct a DIScopeRef from DIScope when we are
dealing with subprogram, lexical block or name space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190362
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 9 Sep 2013 22:28:08 +0000 (22:28 +0000)]
mi-sched: smooth out the cyclicpath heuristic.
Arnold's idea.
I generally try to avoid stateful heuristics because it can make
debugging harder. However, we need a way to prevent the latency
priority from dominating, and it somewhat makes sense to schedule
aggressively for latency only within an issue group.
Swift in particular likes this, and it doesn't hurt anyone else:
| Benchmarks/MiBench/consumer-lame | 10.39% |
| Benchmarks/Misc/himenobmtxpa | 9.63% |
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190360
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Mon, 9 Sep 2013 22:02:08 +0000 (22:02 +0000)]
white spaces and long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190358
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 9 Sep 2013 22:00:13 +0000 (22:00 +0000)]
Don't shrink atomic ops to bool in GlobalOpt.
LLVM IR doesn't currently allow atomic bool load/store operations, and the
transformation is dubious anyway because it isn't profitable on all platforms.
PR17163.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190357
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 21:22:44 +0000 (21:22 +0000)]
Set the encoding to '0' if we don't have an MAB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190354
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Mon, 9 Sep 2013 20:56:48 +0000 (20:56 +0000)]
[InstCombiner] Expose opportunities to merge subtract and comparison.
Several architectures use the same instruction to perform both a comparison and
a subtract. The instruction selection framework does not allow to consider
different basic blocks to expose such fusion opportunities.
Therefore, these instructions are “merged” by CSE at MI IR level.
To increase the likelihood of CSE to apply in such situation, we reorder the
operands of the comparison, when they have the same complexity, so that they
matches the order of the most frequent subtract.
E.g.,
icmp A, B
...
sub B, A
<rdar://problem/
14514580>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190352
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 20:45:34 +0000 (20:45 +0000)]
Debug Info Testing: remove a commented out line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190351
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 20:29:32 +0000 (20:29 +0000)]
Another attempt to fix windows buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190350
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 20:22:38 +0000 (20:22 +0000)]
Attempt to fix buildbots by giving an explicit output to the llvm-mc command.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190349
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 20:12:36 +0000 (20:12 +0000)]
Expand test to make sure that we can generate compact unwind from an ASM file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190348
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 20:10:54 +0000 (20:10 +0000)]
Expand test to make sure that we can generate compact unwind from an ASM file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190347
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 9 Sep 2013 20:03:20 +0000 (20:03 +0000)]
Always add global names. We're adding them in the rest of the code
as well as types.
No functional change as they're not emitted unless the option
is true anyhow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190346
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 9 Sep 2013 20:03:17 +0000 (20:03 +0000)]
Rename for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190345
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 9 Sep 2013 20:03:14 +0000 (20:03 +0000)]
Add the gnu pubnames and pubtypes sections to the mc object file
handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190344
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 9 Sep 2013 20:03:11 +0000 (20:03 +0000)]
Add constant defines for gnu pubnames and gnu pubtypes - they're used
for the gdb index as the names convey.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190343
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 9 Sep 2013 20:03:08 +0000 (20:03 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190342
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 19:48:37 +0000 (19:48 +0000)]
Call generateCompactUnwindEncodings() right before we need to output the frame information.
There are more than one paths to where the frame information is emitted. Place
the call to generateCompactUnwindEncodings() into the method which outputs the
frame information, thus ensuring that the encoding is there for every path. This
involved threading the MCAsmBackend object through to this method.
<rdar://problem/
13623355>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190335
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 19:47:11 +0000 (19:47 +0000)]
Debug Info: Use DIScopeRef for DIType::getContext.
In DIBuilder, the context field of a TAG_member is updated to use the
scope reference. Verifier is updated accordingly.
DebugInfoFinder now needs to generate a type identifier map to have
access to the actual scope. Same applies for BreakpointPrinter.
processModule of DebugInfoFinder is called during initialization phase
of the verifier to make sure the type identifier map is constructed early
enough.
We are now able to unique a simple class as demonstrated by the added
testing case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190334
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 9 Sep 2013 19:25:11 +0000 (19:25 +0000)]
Update CMake file to fix buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190331
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 19:23:58 +0000 (19:23 +0000)]
Debug Info: move DIScope::getContext to DwarfDebug.
DIScope::getContext is a wrapper function that calls the specific getContext
method on each subclass. When we switch DIType::getContext to return DIScopeRef
instead of DIScope, DIScope::getContext can no longer return a DIScope without
a type identifier map.
DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug
to have easy access to the type identifier map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190330
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 9 Sep 2013 19:14:35 +0000 (19:14 +0000)]
Revert patches to add case-range support for PR1255.
The work on this project was left in an unfinished and inconsistent state.
Hopefully someone will eventually get a chance to implement this feature, but
in the meantime, it is better to put things back the way the were. I have
left support in the bitcode reader to handle the case-range bitcode format,
so that we do not lose bitcode compatibility with the llvm 3.3 release.
This reverts the following commits: 155464, 156374, 156377, 156613, 156704,
156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575,
157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884,
157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100,
159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659,
159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190328
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Mon, 9 Sep 2013 19:13:28 +0000 (19:13 +0000)]
[docs] Fix Sphinx warning.
Adornments need to be at least as long as the thing they adorn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190327
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Mon, 9 Sep 2013 19:09:00 +0000 (19:09 +0000)]
[docs] Fix some Sphinx toctree warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190326
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 19:05:21 +0000 (19:05 +0000)]
Debug Info: Move isSubprogramContext from DebugInfo to DwarfDebug.
This helper function needs the type identifier map when we switch
DIType::getContext to return DIScopeRef instead of DIScope.
Since isSubprogramContext is used by DwarfDebug only, We move it to DwarfDebug
to have easy access to the map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190325
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Mon, 9 Sep 2013 19:05:03 +0000 (19:05 +0000)]
[docs] Some typographical fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190324
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 19:03:51 +0000 (19:03 +0000)]
Debug Info: Rename DITypeRef to DIScopeRef.
A reference to a scope is more general than a reference to a type since
DIType is a subclass of DIScope.
A reference to a type can be either an identifier for the type or
the DIType itself, while a reference to a scope can be either an
identifier for the type (when the scope is indeed a type) or the
DIScope itself. A reference to a type and a reference to a scope
will be resolved in the same way. The only difference is in the
verifier when a field is a reference to a type (i.e. the containing
type field of a DICompositeType) or a field is a reference to a scope
(i.e. the context field of a DIType).
This is to get ready for switching DIType::getContext to return
DIScopeRef instead of DIScope.
Tighten up isTypeRef and isScopeRef to make sure the identifier is not
empty and the MDNode is DIType for TypeRef and DIScope for ScopeRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190322
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 19:00:55 +0000 (19:00 +0000)]
Debug Info: Update isScope to make sure DIType is a scope and
TAG_file_type is also a scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190321
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 9 Sep 2013 17:59:32 +0000 (17:59 +0000)]
[mips] When double precision loads and stores are split into two i32 loads and
stores, make sure the load or store that accesses the higher half does not have
an alignment that is larger than the offset from the original address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190318
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 9 Sep 2013 17:38:01 +0000 (17:38 +0000)]
[stackprotector] Modernize code with IRBuilder
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190317
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Mon, 9 Sep 2013 14:21:49 +0000 (14:21 +0000)]
[ARMv8] Prevent generation of deprecated IT blocks on ARMv8 in Thumb mode.
IT blocks can only be one instruction lonf, and can only contain a subset of
the 16 instructions.
Patch by Artyom Skrobov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190309
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 9 Sep 2013 14:17:30 +0000 (14:17 +0000)]
A better way to silence the warning in MSVC (replaces r190304).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190308
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 9 Sep 2013 13:22:45 +0000 (13:22 +0000)]
Silencing a warning about control flow reaching the end of a non-void function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190304
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Mon, 9 Sep 2013 10:42:11 +0000 (10:42 +0000)]
XCore handling of thread local lowering
Fix XCoreLowerThreadLocal trying to initialise globals
which have no initializer.
Add handling of const expressions containing thread local variables.
These need to be replaced with instructions, as the thread ID is
used to access the thread local variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190300
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Mon, 9 Sep 2013 10:42:05 +0000 (10:42 +0000)]
XCore target: change to Sched::Source
This sidesteps a bug in PrescheduleNodesWithMultipleUses() which
does not check if callResources will be affected by the transformation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190299
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Mon, 9 Sep 2013 10:41:57 +0000 (10:41 +0000)]
XCore target: fix weak linkage attribute handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190298
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 02:37:14 +0000 (02:37 +0000)]
Generate compact unwind encoding from CFI directives.
We used to generate the compact unwind encoding from the machine
instructions. However, this had the problem that if the user used `-save-temps'
or compiled their hand-written `.s' file (with CFI directives), we wouldn't
generate the compact unwind encoding.
Move the algorithm that generates the compact unwind encoding into the
MCAsmBackend. This way we can generate the encoding whether the code is from a
`.ll' or `.s' file.
<rdar://problem/
13623355>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190290
91177308-0d34-0410-b5e6-
96231b3b80d8
Jiangning Liu [Mon, 9 Sep 2013 02:20:27 +0000 (02:20 +0000)]
Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions,
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190288
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 9 Sep 2013 00:12:17 +0000 (00:12 +0000)]
Debug Info Testing: use null instead of an empty string in context field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190284
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Sun, 8 Sep 2013 20:44:48 +0000 (20:44 +0000)]
Cross-compilation doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190282
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sun, 8 Sep 2013 09:15:09 +0000 (09:15 +0000)]
Bring back the build of libprofile_rt on Sparc. It is now working correctly. See:
https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-3.3&arch=sparc&ver=1%3A3.3-9&stamp=
1378398308
Thanks to Luca Falavigna for the patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190273
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sun, 8 Sep 2013 06:02:56 +0000 (06:02 +0000)]
Revert r190269 to fix dragonegg failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190271
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sun, 8 Sep 2013 06:00:42 +0000 (06:00 +0000)]
Debug Info: use null instead of "i32 0" in DIBuilder.
For context field of subroutine_type and when creating artificial types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190270
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sun, 8 Sep 2013 04:07:59 +0000 (04:07 +0000)]
Debug Info: pass in DIScope instead of DIDescriptor in createMemberType.
Improve readability. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190269
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sun, 8 Sep 2013 03:11:54 +0000 (03:11 +0000)]
Debug Info Testing: update context from empty string to null.
Context should be either null or MDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190267
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 8 Sep 2013 00:50:45 +0000 (00:50 +0000)]
Add neverHasSideEffects=1 on a couple move instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190259
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 8 Sep 2013 00:47:31 +0000 (00:47 +0000)]
Using popcount should check the popcount feature flag not the SSE41 feature flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190258
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 7 Sep 2013 11:55:36 +0000 (11:55 +0000)]
Run clang-format on these header files. Part of a WIP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190250
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Sep 2013 01:14:42 +0000 (01:14 +0000)]
[mips] Fix typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190236
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Sep 2013 00:52:30 +0000 (00:52 +0000)]
[mips] Enhance command line option "-mno-ldc1-sdc1" to expand base+index double
precision loads and stores as well as reg+imm double precision loads and stores.
Previously, expansion of loads and stores was done after register allocation,
but now it takes place during legalization. As a result, users will see double
precision stores and loads being emitted to spill and restore 64-bit FP registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190235
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Sep 2013 00:26:26 +0000 (00:26 +0000)]
[mips] Place parentheses around && to silence warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190234
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 7 Sep 2013 00:25:48 +0000 (00:25 +0000)]
Remove verifier check that attribute 'builtin' is only applied to calls to
functions marked 'nobuiltin'. That approach doesn't play well with LTO, and
there's no harm in marking a call as 'builtin' if it was going to be a builtin
regardless.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190233
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Sep 2013 00:18:01 +0000 (00:18 +0000)]
[mips] Add definition of instruction "drotr32" (double rotate right plus 32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190232
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sat, 7 Sep 2013 00:04:05 +0000 (00:04 +0000)]
Debug Info: Use identifier to reference DIType in containing type field of
a DISubprogram.
Verifier is updated accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190229
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Sat, 7 Sep 2013 00:02:02 +0000 (00:02 +0000)]
[mips] Use uimm5 and uimm6 instead of shamt and imm, if the immediate has to fit
into a 5-bit or 6-bit field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190226
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 6 Sep 2013 23:54:23 +0000 (23:54 +0000)]
Debug Info: pass in VTableHolder as DIType instead of MDNode *.
Remove one cast and improve readability. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190225
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 6 Sep 2013 23:52:46 +0000 (23:52 +0000)]
[mips] Define "trap" as a pseudo instruction that turns into "break 0, 0".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190224
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 6 Sep 2013 23:42:58 +0000 (23:42 +0000)]
[mips] Delete unused classes and defs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190221
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 6 Sep 2013 23:40:15 +0000 (23:40 +0000)]
[mips] Make "b" (unconditional branch) a pseudo. "b" is an assembly idiom, which is
equivalent to "beq $zero, $zero, offset".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190220
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 6 Sep 2013 23:28:24 +0000 (23:28 +0000)]
[mips] Set instruction itineraries of loads, stores and conditional moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190219
91177308-0d34-0410-b5e6-
96231b3b80d8