Pete Cooper
2bde2f42b1
Refactored the LiveRangeEdit interface so that MachineFunction, TargetInstrInfo, MachineRegisterInfo, LiveIntervals, and VirtRegMap are all passed into the constructor and stored as members instead of passed in to each method.
...
llvm-svn: 153903
2012-04-02 22:22:53 +00:00
Bill Wendling
932b992888
Add an option to turn off the expensive GVN load PRE part of GVN.
...
llvm-svn: 153902
2012-04-02 22:16:50 +00:00
Owen Anderson
98f2c0c384
Add predicates for checking whether targets have free FNEG and FABS operations, and prevent the DAGCombiner from turning them into bitwise operations if they do.
...
llvm-svn: 153901
2012-04-02 22:10:29 +00:00
Ted Kremenek
3b008eecf4
Fix potential null dereference in the static analyzer when inlining a call that has already been inlined. Unfortunately I have no test case.
...
llvm-svn: 153900
2012-04-02 21:55:06 +00:00
Enrico Granata
98bcde4264
Removing some instances of str(SBValue)
...
llvm-svn: 153899
2012-04-02 21:37:02 +00:00
Ted Kremenek
87d7a2462a
Reduce static analyzer memory usage by about 4% by packing the ProgramPoing 'Kind' field into the spare bits of other fields.
...
llvm-svn: 153898
2012-04-02 21:24:13 +00:00
Richard Smith
f989e51cb6
PR10217 diagnostic fix: don't say 'copy constructor' when we mean
...
'copy assignment operator'.
llvm-svn: 153897
2012-04-02 21:07:48 +00:00
Howard Hinnant
e386b7b360
Update <random> with constexpr support. Patch contributed by Jonathan Sauer.
...
llvm-svn: 153896
2012-04-02 21:00:45 +00:00
David Blaikie
9b7efd5bb6
Remove windows line endings.
...
llvm-svn: 153895
2012-04-02 20:59:49 +00:00
Richard Smith
6f1e2c6d19
Finish PR10217: Ensure we say that a special member was implicitly, not
...
explicitly, deleted in all relevant cases, and explain why.
llvm-svn: 153894
2012-04-02 20:59:25 +00:00
Greg Clayton
74ae3f5a45
Export the ability to see if a symbol is externally visible and also if the symbol was synthetically added to the symbol table (the symbol was not part of the symbol table itself but came from another section).
...
llvm-svn: 153893
2012-04-02 20:08:08 +00:00
Lang Hames
aaafacd07e
During two-address lowering, rescheduling an instruction does not untie
...
operands. Make TryInstructionTransform return false to reflect this.
Fixes PR11861.
llvm-svn: 153892
2012-04-02 19:58:43 +00:00
Johnny Chen
d6fbc8ff66
Add testcase that verifies that __apple_types is a valid section in a .o file generated by clang.
...
rdar://problem/11167268
llvm-svn: 153891
2012-04-02 19:46:14 +00:00
Rafael Espindola
2e5c58e77b
No need to run llvm-as.
...
llvm-svn: 153890
2012-04-02 19:44:20 +00:00
Akira Hatanaka
b1f68f9696
Initial 64 bit direct object support.
...
This patch allows llvm to recognize that a 64 bit object file is being produced
and that the subsequently generated ELF header has the correct information.
The test case checks for both big and little endian flavors.
Patch by Jack Carter.
llvm-svn: 153889
2012-04-02 19:25:22 +00:00
Howard Hinnant
338eb3116c
Update <limits> with constexpr support. Patch contributed by Jonathan Sauer.
...
llvm-svn: 153888
2012-04-02 19:23:15 +00:00
David Blaikie
f221e51d2a
Correct error recovery when missing 'class' in a template template parameter.
...
The diagnostic message correctly informs the user that they have omitted the
'class' keyword, but neither suggests this insertion as a fixit, nor attempts
to recover as if they had provided the keyword.
This fixes the recovery, adds the fixit, and adds a separate diagnostic and
corresponding replacement fixit for cases where the user wrote 'struct' or
'typename' instead of 'class' (suggested by Richard Smith as a possible common
mistake).
I'm not sure the diagnostic message for either the original or new cases feel
very Clang-esque, so I'm open to suggestions there. The fixit hints make it
fairly easy to see what's required, though.
llvm-svn: 153887
2012-04-02 19:15:28 +00:00
Hal Finkel
7591afa235
The binutils for the IBM BG/P are too old to support CFI.
...
llvm-svn: 153886
2012-04-02 19:09:04 +00:00
Matt Beaumont-Gay
5dcce096b6
Silence -Wunused-variable in -Asserts build
...
llvm-svn: 153885
2012-04-02 19:05:35 +00:00
Richard Smith
d9a1cd8dbf
PR12438: Profile a reference to a type template parameter by depth and index,
...
not by canonical decl. This only matters for sizeof...(Pack) expressions; in
all other cases, we'd profile it as a type instead.
llvm-svn: 153884
2012-04-02 18:53:24 +00:00
Richard Smith
cf8ec8dad6
Implement DR1402: if a field or base class is not movable, the derived class's
...
move constructor/move assignment operator are not declared, rather than being
defined as deleted, so move operations on the derived class fall back to
copying rather than moving.
If a move operation on the derived class is explicitly defaulted, the
unmovable subobject will be copied instead of being moved.
llvm-svn: 153883
2012-04-02 18:40:40 +00:00
Hal Finkel
f208af02a4
Add triple support for the IBM BG/P and BG/Q supercomputers.
...
llvm-svn: 153882
2012-04-02 18:31:33 +00:00
Johnny Chen
6b433f7fac
Create a directory to host debug info specific test(s) for darwins.
...
llvm-svn: 153881
2012-04-02 18:31:24 +00:00
Eric Christopher
ad9fe8955a
Turn on the accelerator tables for Darwin.
...
llvm-svn: 153880
2012-04-02 17:58:52 +00:00
Stepan Dyatkovskiy
f62ffeca88
Fast fix for PR12343:
...
http://llvm.org/bugs/show_bug.cgi?id=12343
We have not trivial way for splitting edges that are goes from indirect branch. We can do it with some tricks, but it should be additionally discussed. And it is still dangerous due to difficulty of indirect branches controlling.
Fix forbids this case for unswitching.
llvm-svn: 153879
2012-04-02 17:16:45 +00:00
Enrico Granata
247bd419ce
Logging for data formatters.
...
llvm-svn: 153878
2012-04-02 16:39:29 +00:00
Fariborz Jahanian
73223bbd0a
Use -rewrite-legacy-objc as clang argument for translating
...
objective-c's fragile abi, Use -rewrite-objc for translating
objective-c's modern abi. // rdar://11143173
llvm-svn: 153877
2012-04-02 15:59:19 +00:00
Roman Divacky
b9663ccd6b
Implement the SVR4 byval alignment for aggregates. Fixing a FIXME.
...
llvm-svn: 153876
2012-04-02 15:49:30 +00:00
Silviu Baranga
98144e9e1a
Second part for the 153874 one
...
llvm-svn: 153875
2012-04-02 15:46:46 +00:00
Silviu Baranga
ac37acd31b
Added fix in TableGen instruction decoder generation. The decoder now breaks for every leaf node.
...
llvm-svn: 153874
2012-04-02 15:20:39 +00:00
Howard Hinnant
e8df82fa1a
Fix test for default constructor of discrete_distribution. This partially addresses http://llvm.org/bugs/show_bug.cgi?id=12436 .
...
llvm-svn: 153873
2012-04-02 15:00:14 +00:00
Rafael Espindola
ebe09ec137
Add missing 'd'.
...
llvm-svn: 153872
2012-04-02 13:02:57 +00:00
Tobias Grosser
f00bd96cde
CodeGen: Some style improvements
...
llvm-svn: 153871
2012-04-02 12:26:13 +00:00
Bill Wendling
71b19bbdc8
Hack the hack. If we have a situation where an ASM object is defined but isn't
...
reflected in the LLVM IR (as a declare or something), then treat it like a data
object.
N.B. This isn't 100% correct. The ASM parser should supply more information so
that we know what type of object it is, and what attributes it should have.
llvm-svn: 153870
2012-04-02 10:01:21 +00:00
Benjamin Kramer
22d093e4f1
Emit the asm writer's mnemonic table with SequenceToOffsetTable.
...
This way we can get AVX v-prefixed instructions tail merged with the normal insns.
llvm-svn: 153869
2012-04-02 09:13:46 +00:00
Jason Molenda
152694393f
Building llvm for multiple arches could cause problems
...
with some archs, tweak the way we update PATH to fix that.
llvm-svn: 153868
2012-04-02 08:56:42 +00:00
Benjamin Kramer
1c0541b031
Move getOpcodeName from the various target InstPrinters into the superclass MCInstPrinter.
...
All implementations used the same code.
llvm-svn: 153866
2012-04-02 08:32:38 +00:00
Craig Topper
4de7373862
Reorder fields in MatchEntry and OperandMatchEntry to reduce padding. A bit tricky due to the target specific sizes for some of the fields so the ordering is only optimal for the targets in the tree.
...
llvm-svn: 153865
2012-04-02 07:48:39 +00:00
Nadav Rotem
702f080767
Optimizing swizzles of complex shuffles may generate additional complex shuffles.
...
Do not try to optimize swizzles of shuffles if the source shuffle has more than
a single user, except when the source shuffle is also a swizzle.
llvm-svn: 153864
2012-04-02 07:11:12 +00:00
Craig Topper
dab9e35ad0
Remove getInstructionName from MCInstPrinter implementations in favor of using the instruction name table from MCInstrInfo. Reduces static data in the InstPrinter implementations.
...
llvm-svn: 153863
2012-04-02 07:01:04 +00:00
Eric Christopher
8e52bdce7b
Fix CXXFLAGS for huge_val.m4.
...
Patch by Jeremy Huddleston!
llvm-svn: 153862
2012-04-02 06:54:01 +00:00
Bill Wendling
f4ec97d9b0
Fix build by passing in the needed variable after r153860.
...
llvm-svn: 153861
2012-04-02 06:17:37 +00:00
Craig Topper
54bfde79db
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo.
...
llvm-svn: 153860
2012-04-02 06:09:36 +00:00
Bill Wendling
3a0bcf06ef
It could come about that we parse the inline ASM before we get a potential
...
definition for it. In that case, we want to wait for the potential definition
before we create a symbol for it.
llvm-svn: 153859
2012-04-02 03:33:31 +00:00
Richard Smith
23d55873cb
Basic semantic analysis support for inheriting constructor declarations in
...
dependent contexts.
llvm-svn: 153858
2012-04-02 01:30:27 +00:00
Craig Topper
7a2cea1814
Use SequenceToOffsetTable to generate instruction name table for AsmWriter.
...
llvm-svn: 153857
2012-04-02 00:47:39 +00:00
Howard Hinnant
788c9979d9
This is an initial commit of constexpr support as proposed by Richard Smith. This by no means completes constexpr support. Indeed, it hardly scratches the surface. All it does is lay the foundation in <__config> and changes those few places in the library that are already using that foundation.
...
llvm-svn: 153856
2012-04-02 00:40:41 +00:00
Howard Hinnant
0527c6207a
I believe tuple is still under development in the standard. Daniel Krugler is/will be making convincing arguments that a modified form of LWG 2051 (currently NAD Future) is easily acheivable and desirable. He has demonstrated that a tuple<T...> where all of the T are implicitly convertible from U... should have a tuple constructor that is also implicit, instead of explicit. This would support the use cases in LWG 2051 while not undermining T... with explicit conversions from U.... This check-in is an experimental implementation of Daniel's work. I believe this work to be mature enough to warrant inclusion into libc++. If anyone sees real-world problems that this check in causes, please let me know and I will revert it, and provide the feedback to the LWG.
...
llvm-svn: 153855
2012-04-01 23:10:42 +00:00
Bob Wilson
0090df24d7
Ignore unused --serialize-diagnostics option when using llvm-gcc.
...
llvm-gcc doesn't handle --serialize-diagnostics so when compiling i386
kernel/kext code with -Werror, you get an error about that option being
unused. Claim the argument to prevent this from breaking builds.
<rdar://problem/11161933>
llvm-svn: 153854
2012-04-01 23:03:29 +00:00
Chandler Carruth
219173a1be
Start cleaning up the InlineCost class. This switches to sentinel values
...
rather than a bitfield, a great suggestion by Chris during code review.
There is still quite a bit of cruft in the interface, but that requires
sorting out some awkward uses of the cost inside the actual inliner.
No functionality changed intended here.
llvm-svn: 153853
2012-04-01 22:44:09 +00:00