Craig Topper
c9eb09d3b8
Add instruction selection for AVX2 integer comparisons.
...
llvm-svn: 144176
2011-11-09 08:06:13 +00:00
Craig Topper
8c8a431057
Add AVX2 instruction lowering for add, sub, and mul.
...
llvm-svn: 144174
2011-11-09 07:28:55 +00:00
Nick Lewycky
0485d51a76
Don't forget to check FlagNW when determining whether an AddRecExpr will wrap
...
or not. Patch by Brendon Cahoon!
llvm-svn: 144173
2011-11-09 07:11:37 +00:00
Devang Patel
fa4520968b
Remove extra ';'
...
llvm-svn: 144172
2011-11-09 06:20:49 +00:00
Eric Christopher
5223a57533
Remove the pubnames section, no one consumes it.
...
llvm-svn: 144169
2011-11-09 05:24:07 +00:00
Eli Friedman
b3c8febd1e
Enhance verifyLoop so that it can reliably verify that every block in a loop is reachable from the loop header.
...
llvm-svn: 144166
2011-11-09 04:16:01 +00:00
John McCall
a6db70b049
Use isa<> instead of dyn_cast<> as suggested by Nick.
...
Should've read the patch a bit closer, sorry.
llvm-svn: 144164
2011-11-09 03:26:50 +00:00
Chad Rosier
595d419427
Add support for encoding immediates in icmp and fcmp. Hopefully, this will
...
remove a fair number of unnecessary materialized constants.
rdar://10412592
llvm-svn: 144163
2011-11-09 03:22:02 +00:00
Evan Cheng
94307f6ba6
Hide cpu name checking in ARMSubtarget.
...
llvm-svn: 144154
2011-11-09 01:57:03 +00:00
Jakob Stoklund Olesen
3dc89c9768
Collapse DomainValues across loop back-edges.
...
During the initial RPO traversal of the basic blocks, remember the ones
that are incomplete because of back-edges from predecessors that haven't
been visited yet.
After the initial RPO, revisit all those loop headers so the incoming
DomainValues on the back-edges can be properly collapsed.
This will properly fix execution domains on software pipelined code,
like the included test case.
llvm-svn: 144151
2011-11-09 01:06:56 +00:00
Jakob Stoklund Olesen
53ec977cd2
Link to the live DomainValue after merging.
...
When merging two uncollapsed DomainValues, place a link to the active
DomainValue from the passive DomainValue. This allows old stale
references to the passive DomainValue to be updated to point to the
active DomainValue.
The new resolve() function finds the active DomainValue and updates the
pointer.
This change makes old live-out lists more useful since they may contain
uncollapsed DomainValues that have since been merged into other
DomainValues.
llvm-svn: 144149
2011-11-09 00:06:18 +00:00
Michael J. Spencer
d5930ca99d
Object/COFF: Fix PE reading.
...
llvm-svn: 144148
2011-11-08 23:34:07 +00:00
Jakob Stoklund Olesen
b7e44a3f5f
Track reference count independently from clear().
...
This allows clear() to be called on a DomainValue with references.
llvm-svn: 144147
2011-11-08 23:26:00 +00:00
Bruno Cardoso Lopes
d5edb3847a
Properly handle Mips MC relocations and lower cpload and cprestore macros to MCInsts.
...
Patch by Jack Carter.
llvm-svn: 144139
2011-11-08 22:26:47 +00:00
Bill Wendling
39674fc008
Emit the compact unwind *if* we have a compact unwind encoding.
...
*headdesk*
llvm-svn: 144138
2011-11-08 22:23:43 +00:00
Jakob Stoklund Olesen
5d08293999
Call release() directly when cleaning up the remaining DomainValues.
...
There is no need to involve the LiveRegs array and kill() any longer.
llvm-svn: 144133
2011-11-08 22:05:17 +00:00
Jakob Stoklund Olesen
9e338bb0f3
Rename all methods to follow style guide.
...
No functional change.
llvm-svn: 144132
2011-11-08 21:57:47 +00:00
Jakob Stoklund Olesen
1438e191bd
Handle reference counts in one function: release().
...
This new function will decrement the reference count, and collapse a
domain value when the last reference is gone.
This simplifies DomainValue reference counting, and decouples it from
the LiveRegs array.
llvm-svn: 144131
2011-11-08 21:57:44 +00:00
Eric Christopher
08a558eeef
Also add the linkage name to the name accelerator tables if it exists
...
and is different than the normal name.
llvm-svn: 144130
2011-11-08 21:56:23 +00:00
Dan Gohman
a4bc6171a5
Add a hack to the scheduler to disable pseudo-two-address dependencies in
...
basic blocks containing calls. This works around a problem in which
these artificial dependencies can get tied up in calling seqeunce
scheduling in a way that makes the graph unschedulable with the current
approach of using artificial physical register dependencies for calling
sequences. This fixes PR11314.
llvm-svn: 144124
2011-11-08 21:29:06 +00:00
Evan Cheng
c3770ac687
Add workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ldm or ldr pairs.
...
llvm-svn: 144123
2011-11-08 21:21:09 +00:00
Chad Rosier
0439cfc41f
ARMFastISel doesn't support thumb1. Rename isThumb to isThumb2 to reflect this.
...
No functional change intended.
llvm-svn: 144122
2011-11-08 21:12:00 +00:00
Eli Friedman
0bae8b2cfb
Fix code to match comment. Fixes PR11340, a regression from r143209.
...
llvm-svn: 144121
2011-11-08 21:08:02 +00:00
Jakob Stoklund Olesen
1205881820
Clear old DomainValue after merging.
...
The old value may still be referenced by some live-out list, and we
don't wan't to collapse those instructions twice.
This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC
builds.
<rdar://problem/10413292>
llvm-svn: 144117
2011-11-08 20:57:04 +00:00
Michael J. Spencer
5ca95bc56f
MC/COFF: Correctly emit the size of an empty string table.
...
llvm-svn: 144111
2011-11-08 19:52:32 +00:00
Pete Cooper
9ee220915b
LICM pass now understands invariant load metadata. Nothing generates this yet so it will currently never get used in real tests
...
llvm-svn: 144107
2011-11-08 19:30:00 +00:00
Eric Christopher
970771c0e8
Add the base ObjC method name to the names lookup table as well.
...
llvm-svn: 144105
2011-11-08 19:16:01 +00:00
Pete Cooper
fbbbd04705
Adding test for machine-licm operating on invariant load instructions
...
llvm-svn: 144104
2011-11-08 19:06:53 +00:00
Lang Hames
b85fcd07df
Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported.
...
Add support for trimming constants to GetDemandedBits. This fixes some funky
constant generation that occurs when stores are expanded for targets that don't
support unaligned stores natively.
llvm-svn: 144102
2011-11-08 18:56:23 +00:00
Pete Cooper
82cd9e81fc
Added invariant field to the DAG.getLoad method and changed all calls.
...
When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses
llvm-svn: 144100
2011-11-08 18:42:53 +00:00
Eric Christopher
54ce295d37
A few more places where we can avoid multiple size queries.
...
llvm-svn: 144099
2011-11-08 18:38:40 +00:00
Eric Christopher
f1932270c0
Don't evaluate Data.size() on every iteration.
...
llvm-svn: 144095
2011-11-08 18:22:25 +00:00
Bruno Cardoso Lopes
71133fe9c6
This patch handles unaligned loads and stores in Mips JIT. Mips backend
...
implements unaligned loads and stores with assembler macro-instructions
ulw, usw, ulh, ulhu, ush, and this patch emits corresponding instructions
instead of these macros. Since each unaligned load/store is expanded
into two corresponding loads/stores where offset for second load/store is
modified by +3 (for words) or +1 (for halfwords).
Patch by Petar Jovanovic and Sasa Stankovic.
llvm-svn: 144081
2011-11-08 12:47:11 +00:00
NAKAMURA Takumi
4fed9e3af4
PathProfiling.c: Get rid of using "inline". We may expect compiler shall optimize out "static" scope w/o "inline".
...
llvm-svn: 144080
2011-11-08 12:03:14 +00:00
John McCall
5ded03d873
Fix the printing of constants. Patch by Stepan Dyatkovskiy!
...
llvm-svn: 144079
2011-11-08 06:53:04 +00:00
Bill Wendling
b33bd11c71
Add Eero to the list of external projects.
...
llvm-svn: 144076
2011-11-08 05:22:54 +00:00
NAKAMURA Takumi
05aa1a42c3
PPCInstrInfo.cpp: Fix one "unused" warning.
...
llvm-svn: 144071
2011-11-08 04:00:07 +00:00
NAKAMURA Takumi
bb8a523c62
runtime/libprofile/PathProfiling.c: Use __inline__ to appease clang -std=gnu89 -pedantic.
...
FIXME: Should configure detect one?
llvm-svn: 144070
2011-11-08 03:54:40 +00:00
NAKAMURA Takumi
d8d583f766
test/CodeGen/X86/vec_shuffle-39.ll: Add explicit -mtriple=x86_64-linux. Passing packed value is not compatible on Win32 x64.
...
llvm-svn: 144068
2011-11-08 03:46:39 +00:00
NAKAMURA Takumi
ac9ef21f02
test/CodeGen/X86/vec_shuffle-38.ll: Relax expression for Win32 x64.
...
llvm-svn: 144067
2011-11-08 03:46:32 +00:00
NAKAMURA Takumi
33dac06330
test/CodeGen/X86/vec_shuffle.ll: Add explicit -mtriple=i686-linux. We may see some suboptimal frame (%ebp) emission on certain hosts. Possible [PR11031]
...
llvm-svn: 144066
2011-11-08 03:46:25 +00:00
Eli Friedman
6f84fed675
Make sure to mark vector extload's as expand on ARM. Fixes PR11319.
...
llvm-svn: 144057
2011-11-08 01:43:53 +00:00
Eli Friedman
f2a9bd4b1e
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318.
...
Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up.
llvm-svn: 144055
2011-11-08 01:25:24 +00:00
Bill Wendling
1654bb22ca
Cleanup the formatting.
...
llvm-svn: 144053
2011-11-08 00:32:45 +00:00
Evan Cheng
91b56e0390
Add x86 isel logic and patterns to match movlps from clang generated IR for _mm_loadl_pi(). rdar://10134392, rdar://10050222
...
llvm-svn: 144052
2011-11-08 00:31:58 +00:00
Bill Wendling
2a917595d2
Convert to the new EH model.
...
llvm-svn: 144050
2011-11-08 00:23:01 +00:00
Bill Wendling
2197b015c8
Convert to the new EH model.
...
llvm-svn: 144049
2011-11-08 00:17:28 +00:00
Bill Wendling
9b7942a543
Convert tests to the new EH model.
...
llvm-svn: 144048
2011-11-08 00:09:27 +00:00
Chad Rosier
5de1bea5c9
Enable support for returning i1, i8, and i16. Nothing special todo as it's the
...
callee's responsibility to sign or zero-extend the return value. The additional
test case just checks to make sure the calls are selected (i.e., -fast-isel-abort
doesn't assert).
llvm-svn: 144047
2011-11-08 00:03:32 +00:00
Pete Cooper
2dc40434aa
Added missing newline
...
llvm-svn: 144046
2011-11-08 00:03:24 +00:00
Eli Friedman
a35a5295e0
Revert r144034 while I try to track down a crash.
...
llvm-svn: 144044
2011-11-07 23:53:20 +00:00
Bill Wendling
478f58cad4
This code is dead, what with the new EH model and the auto-upgraders in place.
...
Delete!
llvm-svn: 144043
2011-11-07 23:36:48 +00:00
Jakob Stoklund Olesen
9279f9efbc
Fix test for Windows as well.
...
llvm-svn: 144038
2011-11-07 23:10:43 +00:00
Jakob Stoklund Olesen
a70e9417fb
Kill and collapse outstanding DomainValues.
...
DomainValues that are only used by "don't care" instructions are now
collapsed to the first possible execution domain after all basic blocks
have been processed. This typically means the PS domain on x86.
For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are
completely collapsed to the PS domain instead of containing a mix of
execution domains created by isel.
llvm-svn: 144037
2011-11-07 23:08:21 +00:00
Pete Cooper
7a4be01ac8
InstCombine now optimizes vector udiv by power of 2 to shifts
...
Fixes r8429
llvm-svn: 144036
2011-11-07 23:04:49 +00:00
Eli Friedman
55a86d32d3
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318.
...
llvm-svn: 144034
2011-11-07 22:51:10 +00:00
Eric Christopher
5139dadd50
Add all completed and named types to the dwarf type accelerator tables.
...
llvm-svn: 144027
2011-11-07 22:11:16 +00:00
Bill Wendling
fc1935c8bf
Add ISPC to the external projects list.
...
llvm-svn: 144026
2011-11-07 22:05:17 +00:00
Jakob Stoklund Olesen
68e197e151
Use a reverse post order instead of a DFS order.
...
The enterBasicBlock() function is combining live-out values from
predecessor blocks. The RPO traversal means that more predecessors
have been visited when that happens, only back-edges are missing.
llvm-svn: 144025
2011-11-07 21:59:29 +00:00
Eric Christopher
ff2edf1499
Move the hash function to using and taking a StringRef.
...
llvm-svn: 144024
2011-11-07 21:49:35 +00:00
Eric Christopher
b6205d8b49
Simple destructor to delete the hash data we created earlier.
...
llvm-svn: 144023
2011-11-07 21:49:28 +00:00
Chad Rosier
fa75530ff0
Allow i1 to be promoted to i32 for ARM AAPCS and AAPCS-VFP calling convention as well.
...
llvm-svn: 144021
2011-11-07 21:43:40 +00:00
Jakob Stoklund Olesen
736cf46c3e
Extract two methods. No functional change.
...
llvm-svn: 144020
2011-11-07 21:40:27 +00:00
Akira Hatanaka
2216f73676
Various Mips64 floating point instruction patterns.
...
llvm-svn: 144019
2011-11-07 21:38:58 +00:00
Akira Hatanaka
b2d37760a2
Add definition of the base class for floating point comparison instructions
...
and add Mips64's version too.
llvm-svn: 144018
2011-11-07 21:37:33 +00:00
Akira Hatanaka
81c14002dc
Add code needed for copying between 64-bit integer and floating pointer
...
registers.
llvm-svn: 144017
2011-11-07 21:35:45 +00:00
Akira Hatanaka
1537e297e1
Add definitions of 64-bit instructions which move data between integer and
...
floating pointer registers.
llvm-svn: 144016
2011-11-07 21:32:58 +00:00
Jakob Stoklund Olesen
44dcc589b3
MBB doesn't need to be a class member.
...
llvm-svn: 144015
2011-11-07 21:23:42 +00:00
Jakob Stoklund Olesen
baffa7d35d
Fix pass name after the source was moved.
...
llvm-svn: 144014
2011-11-07 21:23:39 +00:00
Benjamin Kramer
69d57cf9c4
Simplify some uses of utohexstr.
...
As a side effect hex is printed lowercase instead of uppercase now.
llvm-svn: 144013
2011-11-07 21:00:59 +00:00
Benjamin Kramer
03d73e47b4
Simplify code. No functionality change.
...
llvm-svn: 144012
2011-11-07 21:00:43 +00:00
Jakob Stoklund Olesen
7f076cb6cc
Fix test for Linux.
...
llvm-svn: 144003
2011-11-07 20:47:23 +00:00
Bill Wendling
7496461f44
Make sure we don't insert instructions before a landingpad instruction.
...
<rdar://problem/10405911>
llvm-svn: 144000
2011-11-07 19:38:34 +00:00
Jakob Stoklund Olesen
0241308954
Expand V_SET0 to xorps by default.
...
The xorps instruction is smaller than pxor, so prefer that encoding.
The ExecutionDepsFix pass will switch the encoding to pxor and xorpd
when appropriate.
llvm-svn: 143996
2011-11-07 19:15:58 +00:00
Akira Hatanaka
2b8d1f163f
Add definition of 64-bit load upper immediate.
...
llvm-svn: 143994
2011-11-07 19:10:49 +00:00
Akira Hatanaka
2f4480046b
Include RegSaveAreaSize in the computation of stack size.
...
llvm-svn: 143993
2011-11-07 19:07:35 +00:00
Akira Hatanaka
7bcecd486f
Define functions that get or set the size of area on callee's stack frame which
...
is used to save va_arg or byval arguments passed in registers.
llvm-svn: 143992
2011-11-07 19:06:10 +00:00
Akira Hatanaka
d9c2e46cfb
Use array_lengthof to compute the number of iterations of a loop.
...
llvm-svn: 143991
2011-11-07 19:03:40 +00:00
Akira Hatanaka
cf7e5b0976
Fix patterns for unaligned 32-bit load. DSLL32 or DSRL32 should be emitted
...
when shift amount is larger than 32.
llvm-svn: 143990
2011-11-07 19:01:49 +00:00
Akira Hatanaka
770f0646db
Make the type of shift amount i32 in order to reduce the number of shift
...
instruction definitions.
llvm-svn: 143989
2011-11-07 18:59:49 +00:00
Akira Hatanaka
d5c1329078
Add 64-bit to 32-bit trunc pattern.
...
llvm-svn: 143988
2011-11-07 18:57:41 +00:00
Eric Christopher
988ac00abd
Use StringRef::startswith to do some string comparisons.
...
llvm-svn: 143982
2011-11-07 18:53:23 +00:00
Eric Christopher
2c5dab541d
Avoid the use of a local temporary for comment twines.
...
llvm-svn: 143974
2011-11-07 18:34:47 +00:00
Eric Christopher
cc979f9ae6
Allow for the case where the name of the subprogram is "".
...
Fixes a self-host error.
llvm-svn: 143970
2011-11-07 18:10:17 +00:00
Owen Anderson
7635bb7ae2
Fix llvm-objdump's MachO mode to not depend on the value returned by RelocationRef::getInfo().
...
llvm-svn: 143966
2011-11-07 17:21:36 +00:00
Richard Osborne
561fac4d4e
Don't introduce custom nodes after legalization in TargetLowering::BuildSDIV()
...
and TargetLowering::BuildUDIV(). Fixes PR11283
llvm-svn: 143964
2011-11-07 17:09:05 +00:00
Eric Christopher
8c7505f258
Remove unnecessary addition to API. Replace with something much simpler.
...
llvm-svn: 143925
2011-11-07 09:38:42 +00:00
Eric Christopher
e1c874aa70
Add new files to cmake.
...
llvm-svn: 143924
2011-11-07 09:37:06 +00:00
Eric Christopher
4996c70034
Add the support code to enable the dwarf accelerator tables. Upcoming patches
...
to fix the types section (all types, not just global types), and testcases.
The code to do the final emission is disabled by default.
llvm-svn: 143923
2011-11-07 09:24:32 +00:00
Eric Christopher
6e47204b0c
Add a new dwarf accelerator table prototype with the goal of replacing
...
the pubnames and pubtypes tables. LLDB can currently use this format
and a full spec is forthcoming and submission for standardization is planned.
A basic summary:
The dwarf accelerator tables are an indirect hash table optimized
for null lookup rather than access to known data. They are output into
an on-disk format that looks like this:
.-------------.
| HEADER |
|-------------|
| BUCKETS |
|-------------|
| HASHES |
|-------------|
| OFFSETS |
|-------------|
| DATA |
`-------------'
where the header contains a magic number, version, type of hash function,
the number of buckets, total number of hashes, and room for a special
struct of data and the length of that struct.
The buckets contain an index (e.g. 6) into the hashes array. The hashes
section contains all of the 32-bit hash values in contiguous memory, and
the offsets contain the offset into the data area for the particular
hash.
For a lookup example, we could hash a function name and take it modulo the
number of buckets giving us our bucket. From there we take the bucket value
as an index into the hashes table and look at each successive hash as long
as the hash value is still the same modulo result (bucket value) as earlier.
If we have a match we look at that same entry in the offsets table and
grab the offset in the data for our final match.
llvm-svn: 143921
2011-11-07 09:18:42 +00:00
Eric Christopher
a7b6189071
Expose a way to get the beginning of the dwarf string section.
...
llvm-svn: 143920
2011-11-07 09:18:38 +00:00
Eric Christopher
6abc9c5aaa
Fix up comment.
...
llvm-svn: 143919
2011-11-07 09:18:35 +00:00
Eric Christopher
2b4f77350d
Typo.
...
llvm-svn: 143918
2011-11-07 09:18:32 +00:00
Craig Topper
a6d409d543
Add AVX2 variable shift instructions and intrinsics.
...
llvm-svn: 143915
2011-11-07 08:26:24 +00:00
Craig Topper
ff39be0afc
Add AVX2 VPMOVMASK instructions and intrinsics.
...
llvm-svn: 143904
2011-11-07 03:20:35 +00:00
Craig Topper
e122dcbf4a
Add AVX2 VEXTRACTI128 and VINSERTI128 instructions. Fix VPERM2I128 to be qualified with HasAVX2 instead of HasAVX. Mark VINSERTF128 and VEXTRACTF128 as never having side effects.
...
llvm-svn: 143902
2011-11-07 02:00:04 +00:00
Craig Topper
620db14aac
Fix accidental edit to __builtin_ia32_vperm2f128_ps256's name
...
llvm-svn: 143901
2011-11-07 00:54:28 +00:00
NAKAMURA Takumi
012d681acd
Fix CRT selection logic when using CMake NMake generator.
...
CMAKE_CONFIGURATION_TYPES is only set on Visual Studio generators. For NMake CMAKE_BUILD_TYPE is used instead.
Patch by EJose Fonseca!
llvm-svn: 143898
2011-11-06 23:37:22 +00:00
Craig Topper
f01f1b5cb9
More AVX2 instructions and their intrinsics.
...
llvm-svn: 143895
2011-11-06 23:04:08 +00:00
Benjamin Kramer
20baffb257
Replace (Lower|Upper)caseString in favor of StringRef's newest methods.
...
llvm-svn: 143891
2011-11-06 20:37:06 +00:00
Benjamin Kramer
e3b94d1b55
Fix a typo.
...
llvm-svn: 143890
2011-11-06 20:36:50 +00:00
Daniel Dunbar
490aa6fd87
Revert "llvm-config-2: Switch to using real library dependency table." while I
...
investigate build failure.
llvm-svn: 143888
2011-11-06 19:57:04 +00:00
Daniel Dunbar
b7e86d4ee2
llvm-config: Users are allowed to provide component names in mixed case.
...
llvm-svn: 143881
2011-11-06 18:04:49 +00:00
Daniel Dunbar
3fa528d67c
ADT/StringRef: Add ::lower() and ::upper() methods.
...
llvm-svn: 143880
2011-11-06 18:04:43 +00:00
Daniel Dunbar
6b45852819
llvm-config-2: Switch to using real library dependency table.
...
- Also, fix a refacto that left extra "all" component in list (this is now
defined in the groups explicitly)
llvm-svn: 143879
2011-11-06 18:04:23 +00:00
Andrew Trick
6c0a11bf61
Release Notes: add a description of -enable-iv-rewrite.
...
llvm-svn: 143878
2011-11-06 17:59:24 +00:00
Peter Collingbourne
bf025fdb54
Return only the least significant 8 bits of the exit status from
...
Process::Wait on Windows (mimicing POSIX behaviour).
llvm-svn: 143876
2011-11-06 16:45:46 +00:00
NAKAMURA Takumi
a61f0cc731
docs/GettingStarted.html: [Git] Add another example for "[Gmail]/Drafts" in Traditional Chinese.
...
Thanks to Chen Weiren.
llvm-svn: 143862
2011-11-06 06:51:58 +00:00
Craig Topper
05d1cb98e7
Add more AVX2 instructions and intrinsics.
...
llvm-svn: 143861
2011-11-06 06:12:20 +00:00
Chandler Carruth
cd22ee3f17
CMake should join the party in a post 3.0 world. ;] This brings CMake's
...
version in-line with the configure-based version.
llvm-svn: 143834
2011-11-05 21:18:59 +00:00
Chad Rosier
d0191a53c9
Add support for passing i1, i8, and i16 call parameters. Also, be sure to
...
zero-extend the constant integer encoding. Test case provides testing for
both call parameters and materialization of i1, i8, and i16 types.
llvm-svn: 143821
2011-11-05 20:16:15 +00:00
Benjamin Kramer
807cf22b55
Update lit's list of tools.
...
llvm-svn: 143815
2011-11-05 16:20:52 +00:00
Benjamin Kramer
79730ad07d
Audited all the format strings in libDebugInfo and fixed those that didn't match the types.
...
llvm-svn: 143814
2011-11-05 16:01:13 +00:00
Benjamin Kramer
f7e0a31f8a
Reduce the offsets in DwarfDebugInfoEntry to 32 bit, they're printed with %x and
...
that breaks on big-endian machines.
I have to clean up the 32/64 bit confusion in libDebugInfo some day.
llvm-svn: 143812
2011-11-05 15:35:00 +00:00
Benjamin Kramer
adc5b46782
Twinify.
...
llvm-svn: 143811
2011-11-05 13:11:25 +00:00
Benjamin Kramer
c1cb1be9b4
MachOObject: Use DataExtractor's uleb parser instead of rolling our own.
...
llvm-svn: 143810
2011-11-05 12:13:21 +00:00
Benjamin Kramer
c74798d5cf
Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 encoding from the DWARF asm printer.
...
As a side effect we now print dwarf ulebs with .ascii directives.
llvm-svn: 143809
2011-11-05 11:52:44 +00:00
Nick Lewycky
f2905afe62
Do simple cross-block DSE when we encounter a free statement. Fixes PR11240.
...
llvm-svn: 143808
2011-11-05 10:48:42 +00:00
Benjamin Kramer
635969ca7f
Fix pasto.
...
llvm-svn: 143802
2011-11-05 09:45:17 +00:00
Benjamin Kramer
f3da529028
Add more PRI.64 macros for MSVC and use them throughout the codebase.
...
llvm-svn: 143799
2011-11-05 08:57:40 +00:00
Daniel Dunbar
6437126f19
build/cmake: Enable initial llvm-build integration.
...
- Generates the llvm-config-2 LibraryDependencies.inc file.
- Generates dependency information so that cmake will automatically reconfigure
when LLVMBuild.txt files are changed.
llvm-svn: 143793
2011-11-05 06:30:03 +00:00
Peter Collingbourne
dc66efeb10
Recommend the -flto flag instead of -use-gold-plugin, and update
...
other aspects of the gold plugin docs to reflect reality.
llvm-svn: 143785
2011-11-05 04:17:28 +00:00
Peter Collingbourne
e5ddfa5ba1
Now that the linker supports lazily materialising globals, don't
...
materialise them in LTO.
I observed a ~0.5-1% speedup for an LTO link of opt.
llvm-svn: 143784
2011-11-05 04:17:25 +00:00
Peter Collingbourne
00221ce63d
Use absolute path to exportsfile in gold plugin CMake build.
...
(Ninja generator requirement.)
llvm-svn: 143783
2011-11-05 04:17:20 +00:00
Daniel Dunbar
0edba5c989
utils/llvm-build: Ensure output directory exists for tools which write various fragments.
...
llvm-svn: 143782
2011-11-05 04:07:49 +00:00
Daniel Dunbar
9057a3de5a
utils/llvm-build: Add trivial quoting of slashes for CMake fragment.
...
llvm-svn: 143781
2011-11-05 04:07:43 +00:00
Chad Rosier
f0055f61fb
Allow i1 to be promoted to i32 for ARM APCS calling convention.
...
llvm-svn: 143755
2011-11-05 00:02:56 +00:00
Pete Cooper
77c703f11c
Added missing &. Fixes <rdar://problem/10393723>
...
llvm-svn: 143753
2011-11-04 23:49:14 +00:00
Eli Friedman
8f249600e7
Enhanced vzeroupper insertion pass that avoids inserting vzeroupper where it is unnecessary through local analysis. Patch from Bruno Cardoso Lopes, with some additional changes.
...
I'm going to wait for any review comments and perform some additional testing before turning this on by default.
llvm-svn: 143750
2011-11-04 23:46:11 +00:00
Chad Rosier
5b8fdd7b62
Cannot create a result register for non-legal types.
...
llvm-svn: 143749
2011-11-04 23:45:39 +00:00
Daniel Dunbar
b0a48e1dd8
build/make: Fix the output path of the llvm-config-2 library dependency table.
...
llvm-svn: 143746
2011-11-04 23:40:14 +00:00
Daniel Dunbar
b814ee46e8
llvm-build: Quote colons in target names, in an attempt to make msys happy.
...
llvm-svn: 143745
2011-11-04 23:40:11 +00:00
Daniel Dunbar
e9733850be
llvm-build: Add initial --write-cmake-fragment option.
...
llvm-svn: 143744
2011-11-04 23:10:37 +00:00
Chad Rosier
e8b8b77307
When materializing an i32, SExt vs ZExt doesn't matter when we're trying to fit
...
in a 16-bit immediate. However, for the shorter non-legal types (i.e., i1, i8,
i16) we should not sign-extend. This prevents us from materializing things
such as 'true' (i.e., i1 1).
llvm-svn: 143743
2011-11-04 23:09:49 +00:00
Daniel Dunbar
21079cad11
build/cmake: Change to require Python be available.
...
llvm-svn: 143742
2011-11-04 23:04:05 +00:00
Chad Rosier
67f96887aa
Enable support for materializing i1, i8, and i16 integers via move immediate.
...
llvm-svn: 143739
2011-11-04 22:29:00 +00:00
Bruno Cardoso Lopes
c9473e9809
Add mips ELF relocation types. Patch by Jack Carter!
...
llvm-svn: 143738
2011-11-04 22:24:36 +00:00
Bill Wendling
ef3cdeab45
Fix some misplaced punctuation.
...
llvm-svn: 143737
2011-11-04 20:40:41 +00:00
Rafael Espindola
c2a8401ad2
Add triple to test.
...
llvm-svn: 143735
2011-11-04 20:20:34 +00:00
Daniel Dunbar
4a2eab0dac
build/cmake: Coalesce the configuration time header include fragment generation
...
for target definitions.
llvm-svn: 143731
2011-11-04 19:04:42 +00:00
Daniel Dunbar
ad3946ac6f
build/cmake: Coalesce in-tree sanity checks.
...
llvm-svn: 143730
2011-11-04 19:04:39 +00:00
Daniel Dunbar
511e29644f
build/cmake: Tidy up specification of build/include options for (tools, runtime,
...
examples, and tests).
llvm-svn: 143729
2011-11-04 19:04:37 +00:00
Daniel Dunbar
10fa2df7c5
build/cmake: Move all the user controllable options into top-level CMakeLists
...
for consistency.
llvm-svn: 143728
2011-11-04 19:04:35 +00:00
Daniel Dunbar
4a9c6426ff
build/cmake: Use tblgen macro directly instead of llvm_tablegen, which just
...
added a layer of indirection with no value (not even conciseness).
llvm-svn: 143727
2011-11-04 19:04:23 +00:00
Rafael Espindola
6cf4e830ce
Emit declarations before definitions if they are available. This causes DW_AT_specification to
...
point back in the file in the included testcase. Fixes PR11300.
llvm-svn: 143726
2011-11-04 19:00:29 +00:00
Bill Wendling
5f689e7b3a
Reformatting changes to get rid of blank lines, put code on one line, and to
...
decrease some code indentation. No intended functional changes.
llvm-svn: 143723
2011-11-04 18:48:00 +00:00
Eli Friedman
5e00f6e16f
Add missing includes/decls.
...
llvm-svn: 143722
2011-11-04 18:45:34 +00:00
Dan Gohman
ce3d6248b2
Add tests for existing InstSimplify features.
...
llvm-svn: 143721
2011-11-04 18:39:16 +00:00
Dan Gohman
85977e6ab4
Teach instsimplify to simplify calls to undef.
...
llvm-svn: 143719
2011-11-04 18:32:42 +00:00
Eli Friedman
97540c3a4a
Add missing includes/class declaration.
...
llvm-svn: 143718
2011-11-04 18:30:30 +00:00
Eli Friedman
c599df75f2
Add missing forward declarations.
...
llvm-svn: 143717
2011-11-04 18:29:09 +00:00
Eli Friedman
2bcf264ec7
Add a couple missing includes; found while analyzing LLVM headers.
...
llvm-svn: 143716
2011-11-04 18:19:43 +00:00
Eli Friedman
88b24261f6
Delete names for unused parameters in inline function definitions in headers, so LLVM users can compile with -Wunused-parameter. PR11257; based on patch by Kevin Harris.
...
llvm-svn: 143715
2011-11-04 18:11:56 +00:00
Bob Wilson
269532de25
Build llvmCore with RTTI enabled. <rdar://problem/10395761>
...
llvm-svn: 143714
2011-11-04 17:57:13 +00:00
Eli Friedman
5b693c2fa6
Add missing argument for atomic instructions in c++ backend. PR11268, part 2.
...
llvm-svn: 143712
2011-11-04 17:29:35 +00:00
Daniel Dunbar
d20ea7dc59
utils: Remove build-for-llvm-top.sh and ModuleInfo.txt, which are not documented and I am pretty sure no one uses.
...
llvm-svn: 143708
2011-11-04 17:14:44 +00:00
Chad Rosier
e502a88b50
Remove declarations for functions that don't exist (and never have).
...
Patch by Anders Waldenborg <anders@0x63.nu>.
llvm-svn: 143705
2011-11-04 17:07:11 +00:00
Benjamin Kramer
4246ca4021
Simplify code.
...
llvm-svn: 143695
2011-11-04 13:52:17 +00:00
Bill Wendling
019392bd4a
Move comment to the correct place.
...
llvm-svn: 143690
2011-11-04 09:34:06 +00:00
Bill Wendling
a2af67493c
Make the Mangler an ivar so that it doesn't have to be passed around everywhere.
...
llvm-svn: 143689
2011-11-04 09:30:19 +00:00
Bill Wendling
ac2abde903
Refactor the MCContext so that it's an ivar instead of a local which is passed
...
around. This is important for some future work as well.
llvm-svn: 143688
2011-11-04 09:24:40 +00:00
Craig Topper
caba032f48
Add intrinsics for X86 vcvtps2ph and vcvtph2ps instructions
...
llvm-svn: 143683
2011-11-04 06:59:49 +00:00
Craig Topper
b9a46e6b83
Add intrinsics for X86 vcvtps2ph and vcvtph2ps instructions
...
llvm-svn: 143682
2011-11-04 06:59:21 +00:00
Evan Cheng
1ddeb167e8
Fix some minor scheduling itinerary bug. It's not expected to actually affect codegen.
...
llvm-svn: 143675
2011-11-04 01:48:58 +00:00
Daniel Dunbar
9ef81066ad
utils: Rename the "llvmbuild" script to llvm-compilers-check.
...
llvm-svn: 143673
2011-11-04 01:09:02 +00:00
Chad Rosier
8a98ec4d4b
Indentation.
...
llvm-svn: 143670
2011-11-04 00:58:10 +00:00
Chad Rosier
f3e73ad5da
Add fast-isel support for returning i1, i8, and i16.
...
llvm-svn: 143669
2011-11-04 00:50:21 +00:00
Daniel Dunbar
e6d40de414
Speculatively revert "DeadStoreElimination can now trim the size of a store if
...
the end of it is dead.", which appears to break bootstrapping LLVM.
llvm-svn: 143668
2011-11-04 00:48:26 +00:00
Daniel Dunbar
1bd49deec0
build: Use right Echo variable and use Verb appropriately.
...
llvm-svn: 143664
2011-11-03 23:01:50 +00:00
Daniel Dunbar
b4ce26a2ea
build/Make: Integrate llvm-build into Makefiles.
...
- Basically, we coordinate with llvm-build to create a Makefile fragment we can
easily use. For now, nothing is wired in except the support to automatically
regenerate this file when necessary.
llvm-svn: 143662
2011-11-03 22:46:21 +00:00
Daniel Dunbar
ab3b1804fe
llvm-build: Add initial code for --write-make-fragment.
...
llvm-svn: 143661
2011-11-03 22:46:19 +00:00
Dan Gohman
198b7ffc11
Reapply r143206, with fixes. Disallow physical register lifetimes
...
across calls, and only check for nested dependences on the special
call-sequence-resource register.
llvm-svn: 143660
2011-11-03 21:49:52 +00:00
Daniel Dunbar
9f01a0db7d
utils: Remove (way) old nightly test scripts, I don't think anyone uses them and LNT has way better tools than this.
...
llvm-svn: 143655
2011-11-03 21:03:53 +00:00
Daniel Dunbar
803b761cbb
llvm-config-2: Implement build system support for getting the variables we only
...
know at build time.
llvm-svn: 143649
2011-11-03 21:01:36 +00:00
Daniel Dunbar
4a1a9eceb5
build/Make: Add support for INCLUDE_BUILD_DIR make variable, to specify that
...
component needs to include files from its ObjDir.
llvm-svn: 143648
2011-11-03 21:01:32 +00:00
Pete Cooper
65ba66c660
Reverted r143600 - selector reference change
...
llvm-svn: 143646
2011-11-03 20:47:50 +00:00
Bill Wendling
ed4cc4432f
Keep the Crack language as an external project.
...
llvm-svn: 143643
2011-11-03 20:10:01 +00:00
Daniel Dunbar
3fa708098a
llvm-build: Avoid followlinks keyword argument to os.walk.
...
- llvm-build should now be Python2.4 compatible as best I know.
llvm-svn: 143641
2011-11-03 19:45:52 +00:00
Dan Bailey
b68515c232
fixed global array handling for ptx to use the correct bit widths
...
llvm-svn: 143640
2011-11-03 19:24:46 +00:00
Daniel Dunbar
bf9bba47a1
build: Add initial cut at LLVMBuild.txt files.
...
llvm-svn: 143634
2011-11-03 18:53:17 +00:00
Pete Cooper
8a95aedb5d
DeadStoreElimination can now trim the size of a store if the end of it is dead.
...
Only currently done if the later store is writing to a power of 2 address or
has the same alignment as the earlier store as then its likely to not break up
large stores into smaller ones
Fixes <rdar://problem/10140300>
llvm-svn: 143630
2011-11-03 18:01:56 +00:00
Daniel Dunbar
453146e569
llvm-build: Update --write-llvmbuild to write out a standard LLVM style file
...
header.
llvm-svn: 143629
2011-11-03 17:56:31 +00:00
Daniel Dunbar
445e8f9d35
llvm-build: Add "--write-library-table" option for generating the C++ library
...
dependency table used by llvm-config.
llvm-svn: 143628
2011-11-03 17:56:28 +00:00
Daniel Dunbar
774421ec26
docs: Sketch docs for llvm-build tool.
...
llvm-svn: 143627
2011-11-03 17:56:24 +00:00
Daniel Dunbar
dbbb258666
llvm-build: Add --write-llvmbuild option, which writes out the component tree.
...
- Useful for migrating or auto-upgrading the format schema.
llvm-svn: 143626
2011-11-03 17:56:21 +00:00
Daniel Dunbar
f45369d7e8
llvm-build: Add --print-tree command line option.
...
llvm-svn: 143625
2011-11-03 17:56:18 +00:00
Daniel Dunbar
4897255255
llvm-build: Fill in some details w.r.t. component's parents.
...
llvm-svn: 143624
2011-11-03 17:56:16 +00:00
Daniel Dunbar
8844e3c0b2
llvm-build: Validate information on the loaded components and form the topological ordering among them (as well as validating that there are no cycles).
...
- Currently we require that all references between components (except the parent relation) fit into a DAG -- this could be relaxed later if it ever proves to be useful.
llvm-svn: 143623
2011-11-03 17:56:12 +00:00
Daniel Dunbar
84fc5ce7af
llvm-build: Fill in more of component parsing to be more strict and
...
differentiate between strings and lists.
llvm-svn: 143622
2011-11-03 17:56:10 +00:00
Daniel Dunbar
dd3fb562c4
llvm-build: Sketch code to load LLVMBuild.txt files.
...
llvm-svn: 143621
2011-11-03 17:56:06 +00:00
Daniel Dunbar
01b0588b42
build: Stub out llvm-build utility tool.
...
llvm-svn: 143620
2011-11-03 17:56:03 +00:00
Daniel Dunbar
6972721d5f
docs: Add initial docs on LLVMBuild organization.
...
llvm-svn: 143619
2011-11-03 17:55:59 +00:00
Daniel Dunbar
fa400a140b
llvm-config-2: Implement component dependency traversal, implement support for 'all', and fix a few other minor bugs.
...
- Still doesn't use actual generated component table, but that is now just a matter of wiring into the build system.
llvm-svn: 143617
2011-11-03 17:30:19 +00:00
Daniel Dunbar
b0f7a1472b
llvm-config: Start stubbing out a C++ version of llvm-config (as llvm-config-2,
...
for now).
- Mostly complete except for the data that needs to come from the build system
or the dependencies.
- Has some small improvements from current llvm-config:
o Uses TargetRegistry directly to get some information.
o Designed to work correctly when used from a CMake build tree (relatively
untested currently) (although pcc fixed this recently for old llvm-config).
llvm-svn: 143616
2011-11-03 17:30:16 +00:00
Craig Topper
0e7cbbabea
Add new X86 AVX2 VBROADCAST instructions.
...
llvm-svn: 143612
2011-11-03 07:35:53 +00:00
Galina Kistanova
98989469a2
Cleaned text, fixed HTML.
...
llvm-svn: 143607
2011-11-03 05:57:26 +00:00
Chad Rosier
bf5f4bec1a
Add support for sign-extending non-legal types in SelectSIToFP().
...
llvm-svn: 143603
2011-11-03 02:04:59 +00:00
Pete Cooper
e6173d81ae
Treat objc selector reference globals as invariant so that MachineLICM can hoist them out of loops. Fixes <rdar://problem/6027699>
...
llvm-svn: 143600
2011-11-03 00:56:36 +00:00
Chad Rosier
9589872af9
Remove some cruft from the BitcodeWriter, while still maintaining backward
...
compatibility in the BitcodeReader.
llvm-svn: 143598
2011-11-03 00:14:01 +00:00
Lang Hames
1f4603d498
Fixed parameter name.
...
llvm-svn: 143594
2011-11-02 23:37:04 +00:00
Chad Rosier
d294af104a
Removed unused variable.
...
llvm-svn: 143591
2011-11-02 23:21:55 +00:00
Bill Wendling
645eadac67
An array of chars of length 8 will also cause the stack protector to be inserted
...
into the function. Reflect that here so that the array will be placed next to
the SP.
<rdar://problem/10128329>
llvm-svn: 143590
2011-11-02 23:20:58 +00:00
Lang Hames
9929c423a1
Try to lower memset/memcpy/memmove to vector instructions on ARM where the alignment permits.
...
llvm-svn: 143582
2011-11-02 22:52:45 +00:00
Galina Kistanova
3246d3556b
Few corrections on the document page.
...
llvm-svn: 143578
2011-11-02 22:05:18 +00:00
Nick Lewycky
000307fef9
I added the first test to run llvm-dwarfdump.
...
llvm-svn: 143571
2011-11-02 21:02:27 +00:00
Nick Lewycky
d1ee7f8cf1
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always
...
implied by directory index zero.
llvm-svn: 143570
2011-11-02 20:55:33 +00:00
Tobias Grosser
325569f716
docs: Fix two typos
...
llvm-svn: 143565
2011-11-02 19:51:04 +00:00
Daniel Dunbar
6c92223b37
build/Make: Update for rename of show-diagnostics.
...
llvm-svn: 143564
2011-11-02 19:48:19 +00:00
Michael J. Spencer
1085ce6d45
object: Add operator < for SymbolRef and SectionRef.
...
llvm-svn: 143563
2011-11-02 19:33:41 +00:00
Michael J. Spencer
d0f5b0e194
object/COFF: Properly initalize uses of DataRefImpl.
...
llvm-svn: 143562
2011-11-02 19:33:26 +00:00
Michael J. Spencer
e03ea9cd71
Object/Archive: Add symbol table iteration.
...
llvm-svn: 143561
2011-11-02 19:33:12 +00:00
Chad Rosier
9cf803c4bf
Add support for comparing integer non-legal types.
...
llvm-svn: 143559
2011-11-02 18:08:25 +00:00
Owen Anderson
fbb704f551
Fix the issue that r143552 was trying to address the _right_ way. One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction.
...
llvm-svn: 143557
2011-11-02 18:03:14 +00:00
Kevin Enderby
60d8516857
Replace tabs I added in this new line of code with spaces.
...
Thanks to Nick for spotting this!
llvm-svn: 143556
2011-11-02 17:56:38 +00:00
Daniel Dunbar
5aba1b4ea3
tests: Clean up tests/CMakeLists.txt to drop some variable configuration we no
...
longer need substitutions for.
llvm-svn: 143555
2011-11-02 17:54:51 +00:00
Owen Anderson
ec5c5f7008
The rules disallowing single-register reglist operands only apply to the POP alias, not to LDM/STM instructions. Revert r143552.
...
llvm-svn: 143553
2011-11-02 17:46:18 +00:00
Owen Anderson
fad59dab62
Register list operands are not allowed to contain only a single register. Alternate encodings are used in that case.
...
llvm-svn: 143552
2011-11-02 17:41:23 +00:00
Benjamin Kramer
4e8b463883
Don't print two 0x prefixes when printing an address.
...
llvm-svn: 143549
2011-11-02 17:24:36 +00:00
Chandler Carruth
76f9e57145
Add back the top-level target for 'llvm-config' and the dependency edge
...
to force it to build after all library targets so it has complete
dependency information. This should fix broken 'make install' with
CMake.
This is a partial revert of r143540, but it doesn't revert the most
important part of that change: removing the dependency edge from LLVM
tools to the llvm-config script.
llvm-svn: 143548
2011-11-02 17:22:57 +00:00
Chad Rosier
4489f948a7
Factor out an EmitIntExt function. No functionality change intended.
...
llvm-svn: 143547
2011-11-02 17:20:24 +00:00
Andrew Trick
c2c79c90f2
Rewrite LinearFunctionTestReplace to handle pointer-type IVs.
...
We've been hitting asserts in this code due to the many supported
combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This
second rewrite of the code attempts to deal with these cases systematically.
llvm-svn: 143546
2011-11-02 17:19:57 +00:00
Chandler Carruth
3198cc7376
Fix a typo noticed by Peter Collingbourne. No one depends on this
...
working today, but it shouldn't corrupt state for some poor soul to
debug later.
llvm-svn: 143545
2011-11-02 16:55:57 +00:00
Daniel Dunbar
f5918316e4
docs: Remove an out-of-date and unnecessary tool list.
...
llvm-svn: 143544
2011-11-02 15:57:05 +00:00
Daniel Dunbar
9a28c4a522
docs: Separate development process type of documentation from programming
...
documentation.
llvm-svn: 143543
2011-11-02 15:56:58 +00:00
Daniel Dunbar
1ad9bd9a4e
docs: Remove UsingLibraries page, which was inaccurate / out-of-date and not
...
particularly useful.
llvm-svn: 143542
2011-11-02 15:56:55 +00:00
Daniel Dunbar
bcafe5f84d
build/Make: Get rid of llvm-config-perobj, which isn't used anymore.
...
llvm-svn: 143541
2011-11-02 15:56:52 +00:00
Daniel Dunbar
ab527acc09
build/CMake: Remove llvm-config.target used to serialize tool builds on
...
llvm-config build, there is no longer a point to this after Chandler's work.
llvm-svn: 143540
2011-11-02 15:56:38 +00:00
Chandler Carruth
ae4e800c5b
Begin collecting some of the statistics for block placement discussed on
...
the mailing list. Suggestions for other statistics to collect would be
awesome. =]
Currently these are implemented as a separate pass guarded by a separate
flag. I'm not thrilled by that, but I wanted to be able to collect the
statistics for the old code placement as well as the new in order to
have a point of comparison. I'm planning on folding them into the single
pass if / when there is only one pass of interest.
llvm-svn: 143537
2011-11-02 07:17:12 +00:00
Craig Topper
a47b05c7f3
More AVX2 instructions and intrinsics.
...
llvm-svn: 143536
2011-11-02 06:54:17 +00:00
Chandler Carruth
9dba8af074
Add parentheses to disambiguate the precedence of these operations and
...
silence -Wparentheses.
llvm-svn: 143534
2011-11-02 05:43:44 +00:00
Chandler Carruth
39bf89b382
The TableGen parts of the CMake build are seriously broken. This fixes
...
one aspect of them by having them use the (annoying, if not broken)
proper library dependency model for adding the LLVMTableGen library as
a dependency. This could manifest as a link order issue in the presence
of separate LLVM / Clang source builds with CMake and a linker that
really cares about such things.
Also, add the Support dependency to llvm-tblgen itself so that it
doesn't rely on TableGen's transitive Support dependency. A parallel
change for clang-tblgen will be forthcoming.
llvm-svn: 143531
2011-11-02 05:03:06 +00:00
Craig Topper
682b850602
Add a bunch more X86 AVX2 instructions and their corresponding intrinsics.
...
llvm-svn: 143529
2011-11-02 04:42:13 +00:00
Chad Rosier
800f223b12
Rename show-diagnostics to something less ambiguous.
...
llvm-svn: 143525
2011-11-02 00:44:16 +00:00
Tanya Lattner
0a48b877c6
Add support to the linker to lazily link in functions. This change only links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't.
...
llvm-svn: 143524
2011-11-02 00:24:56 +00:00
Chad Rosier
ee7e452571
Factor out a SelectTrunc function. No functionality change intended.
...
llvm-svn: 143523
2011-11-02 00:18:48 +00:00
Andrew Trick
0dae890346
Broaden an assert to handle enable-iv-rewrite=true following r143183.
...
Narrowest possible fix for PR11279.
llvm-svn: 143522
2011-11-02 00:02:45 +00:00
Kevin Enderby
82ed3be1fb
Fixed a bug in the code to create a dwarf file and directory table entires when
...
it is separating the directory part from the basename of the FileName. Noticed
that this:
.file 1 "dir/foo"
when assembled got the two parts switched. Using the Mac OS X dwarfdump tool
it can be seen easily:
% dwarfdump -a a.out
include_directories[ 1] = 'foo'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 dir
...
Which should be:
...
include_directories[ 1] = 'dir'
Dir Mod Time File Len File Name
---- ---------- ---------- ---------------------------
file_names[ 1] 1 0x00000000 0x00000000 foo
llvm-svn: 143521
2011-11-01 23:39:05 +00:00
Jim Grosbach
5c6b6346bc
ARM label operands can be quoted.
...
For example, labels from Objective-C sources.
llvm-svn: 143511
2011-11-01 22:38:31 +00:00
Jim Grosbach
7f1f3bd868
ARM label operands can have an optional '#' before them.
...
llvm-svn: 143510
2011-11-01 22:37:37 +00:00
Kevin Enderby
6469fc275a
First part of support for generating dwarf for assembly source files with the
...
-g flag. In this part we generate the .file for the source being assembled and
the .loc's for the assembled instructions.
The next part will be to generate the dwarf Compile Unit DIE and a dwarf
subprogram DIE for each non-temporary label.
Once the next part is done test cases will be added. rdar://9275556
llvm-svn: 143509
2011-11-01 22:27:22 +00:00
Owen Anderson
69e54a740c
Fix disassembly of some VST1 instructions.
...
llvm-svn: 143507
2011-11-01 22:18:13 +00:00
Sebastian Pop
94441fbad7
rename getHostTriple into getDefaultTargetTriple
...
llvm-svn: 143502
2011-11-01 21:32:20 +00:00
Sebastian Pop
ec2fb226d8
rename LLVM_HOSTTRIPLE into LLVM_DEFAULT_TARGET_TRIPLE
...
llvm-svn: 143501
2011-11-01 21:31:44 +00:00
Sebastian Pop
f29a9b8c0b
derive LLVM_HOSTTRIPLE from target
...
llvm-svn: 143500
2011-11-01 21:30:04 +00:00
Eli Friedman
3f5eccbe7a
Teach the x86 backend a couple tricks for dealing with v16i8 sra by a constant splat value. Fixes PR11289.
...
llvm-svn: 143498
2011-11-01 21:18:39 +00:00
Jim Grosbach
107c14391f
Ignore MachO symbol flags in the upper nibble of n_desc.
...
They don't impact the MCJIT rtdyld, so just mask them off for now.
llvm-svn: 143472
2011-11-01 18:10:23 +00:00
Daniel Dunbar
ca5524b00b
Support/Compiler: Add LLVM_EXTENSION for use where we want to hide pedantic diags.
...
llvm-svn: 143468
2011-11-01 17:46:12 +00:00
Richard Osborne
56ce0932db
Don't fold negative offsets into cp / dp accesses to avoid relocation errors.
...
This can happen if the address + addend is less than the start of the cp / dp.
llvm-svn: 143459
2011-11-01 11:31:53 +00:00
Richard Osborne
37fe7d6641
Combine various XCore tests for floating point intrinsic support into a single test.
...
llvm-svn: 143458
2011-11-01 10:51:48 +00:00
Richard Osborne
8591b6b0ab
Move various XCore tests to FileCheck
...
llvm-svn: 143457
2011-11-01 10:41:28 +00:00
Craig Topper
fec80c6ad2
Fix operand type for x86 pmadd_ub_sw intrinsic.
...
llvm-svn: 143455
2011-11-01 07:25:22 +00:00
Eli Friedman
39df70c33a
Remove a couple unused methods. PR11201.
...
llvm-svn: 143452
2011-11-01 05:11:01 +00:00
Eli Friedman
a49b828f8f
Make sure we use the right insertion point when instcombine replaces a PHI with another instruction. (Specifically, don't insert an arbitrary instruction before a PHI.) Fixes PR11275.
...
llvm-svn: 143437
2011-11-01 04:49:29 +00:00
Eli Friedman
d4e02a50ba
A couple misc fixes so that bugpoint doesn't explode reducing code containing landingpads.
...
llvm-svn: 143435
2011-11-01 04:40:56 +00:00
Bill Wendling
eda350d8ab
Add LuaAV to external projects list.
...
llvm-svn: 143431
2011-11-01 04:08:23 +00:00
Eli Friedman
0eb88775ef
Move x86-specific tests into X86 folder.
...
llvm-svn: 143424
2011-11-01 03:21:48 +00:00
Eli Friedman
6185a2aa7c
Move another test requiring x86 into X86 directory.
...
llvm-svn: 143421
2011-11-01 03:12:47 +00:00
Eli Friedman
2cd281ea67
Move test requiring x86 backend into X86 directory.
...
llvm-svn: 143420
2011-11-01 03:11:41 +00:00
Jim Grosbach
fb2f1d61f4
ARM VLD/VST assembly parsing for symbolic address operands.
...
llvm-svn: 143413
2011-11-01 01:24:45 +00:00
Jakob Stoklund Olesen
559d4dcc16
Update split candidate correctly when interference cache is full.
...
No test case, spotted by inspection.
llvm-svn: 143407
2011-11-01 00:02:31 +00:00
Eli Friedman
d28ddbff8d
Add support for new atomics to cpp backend. Misc other fixes while I'm here. PR11268.
...
llvm-svn: 143406
2011-10-31 23:59:22 +00:00
Devang Patel
f4af8c65aa
Add utility to append a function to the list of global constructors.
...
Patch by Kostya Serebryany.
llvm-svn: 143405
2011-10-31 23:58:51 +00:00
Matt Beaumont-Gay
1c1a2b8123
Change the actual tests to match the input directory rename (duh)
...
llvm-svn: 143404
2011-10-31 23:56:52 +00:00
Tanya Lattner
e9839c045f
Reapply r141657.
...
Also revert the change to CREATE_SUBDIRS as this is what caused the CSS to break on the website and generate the much longer URLs.
llvm-svn: 143401
2011-10-31 23:46:50 +00:00
Matt Beaumont-Gay
da5e57cba1
Rename "TestObjectFiles" to "Inputs" (like the pattern for Clang tests)
...
llvm-svn: 143400
2011-10-31 23:46:38 +00:00
Jim Grosbach
05df460269
ARM VST1 w/ writeback assembly parsing and encoding.
...
llvm-svn: 143369
2011-10-31 21:50:31 +00:00
Ted Kremenek
aff3640d13
Update 'Getting Started' to suggest using GCC 4.2 or higher (or Clang). There is no reason to support older versions of GCC.
...
llvm-svn: 143366
2011-10-31 21:23:15 +00:00
Galina Kistanova
9545514c60
Added instruction how to add a builder to docs.
...
llvm-svn: 143365
2011-10-31 21:13:06 +00:00
Nadav Rotem
f310361a7d
Cleanup. Document. Make sure that this build_vector optimization only runs before the op legalizer and that the used type is legal.
...
llvm-svn: 143358
2011-10-31 20:08:25 +00:00
Jim Grosbach
e4c8e692f2
ARM writeback vs. stride operands for VST/VLD.
...
The _fixed variants have a writeback operand, but not a stride operand.
Split the conditional flag to distinguish the cases.
llvm-svn: 143356
2011-10-31 19:11:23 +00:00
Rafael Espindola
300dcb8e37
Move test to the X86 directory, note the PR number and only run MC once.
...
llvm-svn: 143352
2011-10-31 17:23:09 +00:00
Owen Anderson
40703f4252
More not-crashing NEON disassembly updates for the vld refactoring.
...
llvm-svn: 143351
2011-10-31 17:17:32 +00:00
NAKAMURA Takumi
a35cdd68cf
docs/*.html: Fix markups.
...
llvm-svn: 143349
2011-10-31 13:04:26 +00:00
NAKAMURA Takumi
b8004d9b4c
docs/*.html: Appease W3C Checker to add "charset=utf-8".
...
llvm-svn: 143348
2011-10-31 11:21:59 +00:00
Craig Topper
9821e75e64
Fix operand type for int_x86_ssse3_phadd_sw_128 intrinsic
...
llvm-svn: 143336
2011-10-31 07:16:37 +00:00
Craig Topper
242d1f8c73
Test case for X86 FS/GS Base intrinsics
...
llvm-svn: 143332
2011-10-31 02:15:47 +00:00
Craig Topper
cfcfdf2aab
Begin adding AVX2 instructions. No selection support yet other than intrinsics.
...
llvm-svn: 143331
2011-10-31 02:15:10 +00:00
Nick Lewycky
cd196f6b4f
Close <div> that was indenting the rest of the page.
...
llvm-svn: 143328
2011-10-31 01:32:21 +00:00
Nick Lewycky
aab6169ef6
Switch new .file directive emission off by default, change llc's flag for it to
...
-enable-dwarf-directory.
llvm-svn: 143326
2011-10-31 01:06:02 +00:00
Craig Topper
228d9131aa
Add intrinsics and feature flag for read/write FS/GS base instructions. Also add AVX2 feature flag.
...
llvm-svn: 143319
2011-10-30 19:57:21 +00:00
Duncan Sands
3d5692a475
Reapply commit 143214 with a fix: m_ICmp doesn't match conditions
...
with the given predicate, it matches any condition and returns the
predicate - d'oh! Original commit message:
The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false.
Spotted by my super-optimizer in 186.crafty and 450.soplex. We really
need a proper infrastructure for handling generalizations of this kind
of thing (which occur a lot), however this case is so simple that I decided
to go ahead and implement it directly.
llvm-svn: 143318
2011-10-30 19:56:36 +00:00
Craig Topper
27f8c6ee2c
Mark X86 pcmpeq b/w/d intrinsics as being Commutative. pcmpeqq is already marked as Commutative.
...
llvm-svn: 143317
2011-10-30 18:33:35 +00:00
Peter Collingbourne
8bb15d8276
Teach ModuleLinker::getLinkageResult about materialisable functions
...
llvm-svn: 143316
2011-10-30 17:46:34 +00:00
Benjamin Kramer
7402ee6ec2
X86: Emit logical shift by constant splat of <16 x i8> as a <8 x i16> shift and zero out the bits where zeros should've been shifted in.
...
llvm-svn: 143315
2011-10-30 17:31:21 +00:00
Craig Topper
9cdb9ffa43
Fix return type for X86 mpsadbw instrinsic. The instruction takes in a vector of 8-bit integers, but produces a vector of 16-bit integers.
...
llvm-svn: 143313
2011-10-30 17:22:45 +00:00
Nadav Rotem
c602b2c4de
Fix pr11266.
...
On x86: (shl V, 1) -> add V,V
Hardware support for vector-shift is sparse and in many cases we scalarize the
result. Additionally, on sandybridge padd is faster than shl.
llvm-svn: 143311
2011-10-30 13:24:22 +00:00
Benjamin Kramer
a4eba41b7a
Silence compiler warning.
...
llvm-svn: 143308
2011-10-30 08:39:55 +00:00
Nadav Rotem
1dda6a8ce1
Stabilize the test by specifying an exact cpu target
...
llvm-svn: 143307
2011-10-30 08:07:50 +00:00
Roman Divacky
2634d778a6
Update on PPC32.
...
llvm-svn: 143306
2011-10-30 07:49:04 +00:00
Bill Wendling
f525e37c5d
Do a relative path ln command instead of an absolute path one. Some people strangely enough have different directory layouts...
...
llvm-svn: 143302
2011-10-29 23:49:52 +00:00
NAKAMURA Takumi
f7af62ed78
CREDITS.TXT: Add a line. (test commit)
...
llvm-svn: 143300
2011-10-29 23:42:14 +00:00
Nadav Rotem
bf6568b5d6
Add a new DAGCombine optimization for BUILD_VECTOR.
...
If all of the inputs are zero/any_extended, create a new simple BV
which can be further optimized by other BV optimizations.
llvm-svn: 143297
2011-10-29 21:23:04 +00:00
Benjamin Kramer
932de2bc86
Force SSE for this test.
...
llvm-svn: 143291
2011-10-29 19:43:44 +00:00
Benjamin Kramer
ff91dd9f07
PPC: Disable moves for all CR subregisters.
...
Should fix assertion failures on ppc buildbots.
llvm-svn: 143290
2011-10-29 19:43:38 +00:00
Benjamin Kramer
594ee77964
SimplifyLibCalls: Use IRBuilder.CreateGlobalString when creating a string for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable.
...
Fixes PR11264.
llvm-svn: 143289
2011-10-29 19:43:31 +00:00
llvm
ac5394185e
Test.
...
llvm-svn: 143277
2011-10-29 14:16:39 +00:00
Bill Wendling
edc208762e
Revise ThreadSanitizer mention so that it lists the correct frontends.
...
llvm-svn: 143268
2011-10-29 01:11:15 +00:00
Bill Wendling
ca8dc4a617
Add Cling to the External Projects list.
...
llvm-svn: 143267
2011-10-29 01:10:01 +00:00
Eli Friedman
3af3c046a9
Revert r143214; it's breaking a bunch of stuff.
...
llvm-svn: 143265
2011-10-29 00:56:07 +00:00
Dan Gohman
9b9c970148
Revert r143206, as there are still some failing tests.
...
llvm-svn: 143262
2011-10-29 00:41:52 +00:00