Torok Edwin
31e90d2dd1
Use indirect calls in PowerPC JIT.
...
See PR5201. There is no way to know if direct calls will be within the allowed
range for BL. Hence emit all calls as indirect when in JIT mode.
Without this long-running applications will fail to JIT on PowerPC with a
relocation failure.
llvm-svn: 110246
2010-08-04 20:47:44 +00:00
Devang Patel
6d21f61b3f
Fix typo in comment.
...
llvm-svn: 110244
2010-08-04 20:32:36 +00:00
Dan Gohman
db764c6e3b
Fix a minor bug which resulted in intermediate calculations
...
using wider types than are necessary.
llvm-svn: 110241
2010-08-04 19:52:50 +00:00
Dan Gohman
2392287306
Change this llvm_unreachable to report_fatal_error, since it can
...
be triggered by valid, if dubious, IR.
llvm-svn: 110240
2010-08-04 18:51:09 +00:00
Devang Patel
5c1f56b78f
Test case for combination of r110234 & r110235.
...
llvm-svn: 110238
2010-08-04 18:42:46 +00:00
Devang Patel
d71bc1ae4e
While spilling live registers at the end of block check whether they are used by DBG_VALUE machine instructions or not. If a spilled register is used by DBG_VALUE machine instruction then insert a new DBG_VALUE machine instruction to encode variable's new location on stack.
...
llvm-svn: 110235
2010-08-04 18:42:02 +00:00
Devang Patel
0e60e67efb
If a variable is spilled by code generator then use DW_OP_fbreg to describe its location on stack.
...
llvm-svn: 110234
2010-08-04 18:40:52 +00:00
Owen Anderson
9f2bca02d7
Experiments show that we can safely increase our unrolling threshold without unduly impacting code size, particularly
...
since unrolling is not enabled at -Os.
llvm-svn: 110233
2010-08-04 18:32:46 +00:00
Owen Anderson
f16eb37b54
Add a note about the changing pass registration interface.
...
llvm-svn: 110231
2010-08-04 18:27:08 +00:00
Dale Johannesen
21f13209f8
Remove switch for disabling ARM tail calls. They
...
seem to be working correctly. No functional change.
llvm-svn: 110226
2010-08-04 18:07:17 +00:00
Devang Patel
2bf0f3ceff
Add DEBUG message.
...
llvm-svn: 110224
2010-08-04 18:06:05 +00:00
Dan Gohman
ba81fc16a5
Fix whitespace.
...
llvm-svn: 110223
2010-08-04 17:43:57 +00:00
Dan Gohman
1bcc697c2a
Update the polygen grammar for linker_private and linker_private_weak,
...
and add comments about major implemented features.
llvm-svn: 110215
2010-08-04 17:01:59 +00:00
Dan Gohman
a3ed071166
Fix a typo in a comment.
...
llvm-svn: 110211
2010-08-04 16:48:36 +00:00
Dan Gohman
988bfce174
Print a message when a test failure is due to stderr output
...
alone, rather than just an exit code.
llvm-svn: 110208
2010-08-04 16:42:38 +00:00
Dan Gohman
de75469cd8
Remove CVS artifacts.
...
llvm-svn: 110207
2010-08-04 16:25:01 +00:00
Dan Gohman
ccb6156a0f
Remove CVS artifacts.
...
llvm-svn: 110206
2010-08-04 16:11:24 +00:00
Dan Gohman
1a41e6e0ce
Delete scripts which haven't noticed that CVS has gone away.
...
llvm-svn: 110205
2010-08-04 16:10:42 +00:00
Dan Gohman
b3f5c6e795
cvsupdate is gone.
...
llvm-svn: 110204
2010-08-04 16:09:01 +00:00
Dan Gohman
67c0212353
Delete mkpatch. Everything it does is already done by svn diff by default.
...
llvm-svn: 110203
2010-08-04 16:07:22 +00:00
Dan Gohman
852287332a
Remove a link which is no longer relevant.
...
llvm-svn: 110202
2010-08-04 15:59:16 +00:00
Dan Gohman
6786a04d0d
These tests are no longer stored in *CVS*.
...
llvm-svn: 110201
2010-08-04 15:58:01 +00:00
Benjamin Kramer
a53a4eefa6
Enable COFF writer on mingw32 and cygwin.
...
llvm-svn: 110200
2010-08-04 15:32:40 +00:00
Stuart Hastings
cba0d06b7c
call-imm.ll test case regex fix. Patch by Dimitry Andric!
...
llvm-svn: 110199
2010-08-04 15:31:35 +00:00
Kalle Raiskila
8b2f70125f
Make SPU backend handle insertelement and
...
store for "half vectors"
llvm-svn: 110198
2010-08-04 13:59:48 +00:00
Benjamin Kramer
61c8e6dc16
Print an error message when someone tries -integrated-as on an unsupported target.
...
- The COFF backend doesn't support MingW/Cygwin at the moment, it'll report an
error, but it's still much better than random assertions from the MachO backend.
- We want to make ELF the default eventually, it's what the majority of targets use.
llvm-svn: 110197
2010-08-04 13:16:30 +00:00
Torok Edwin
e6f478f795
Note some LLVM 2.7 -> 2.8 APIs that changed / got renamed.
...
I encountered these while upgrading libclamav.
llvm-svn: 110196
2010-08-04 12:43:22 +00:00
Torok Edwin
bfc17d0157
Add a missing function.
...
llvm-svn: 110195
2010-08-04 11:42:45 +00:00
Gabor Greif
94ab490260
by Alexander Herz:
...
"The CWriter::GetValueName() method does not check if a value as an alias
and emits the alias name which will never be defined in the output .c
file (so the output file fails to compile). This can happen if you have
multiple inheritance with several destructors defined by clang (...D0Ev,
...D1Ev, ...D2Ev)."
-- applied with minor tweaks. Thanks!
llvm-svn: 110194
2010-08-04 10:00:52 +00:00
Torok Edwin
6b43ea117f
Fix build of DataFlow.h
...
llvm-svn: 110193
2010-08-04 09:30:20 +00:00
Dan Gohman
5cae103392
Eliminate unnecessary empty string literals.
...
llvm-svn: 110183
2010-08-04 01:39:08 +00:00
Dan Gohman
839c972102
Fix a comment.
...
llvm-svn: 110181
2010-08-04 01:16:35 +00:00
Dan Gohman
f77b735376
Don't construct a std::string with a literal "".
...
llvm-svn: 110180
2010-08-04 01:14:33 +00:00
Dan Gohman
47053d972b
Don't print the filename twice in file-not-found errors.
...
llvm-svn: 110179
2010-08-04 01:13:48 +00:00
Bruno Cardoso Lopes
b8f0d52731
Fix a comment typo and add more 256-bit intrinsics
...
llvm-svn: 110177
2010-08-04 01:09:40 +00:00
Dan Gohman
4f9c40c521
Change the logic which interprets output on stderr as an error so that
...
it doesn't modify the exit code or the stdout contents, and so that it
doesn't clutter the output with "Command has output on stderr!".
llvm-svn: 110171
2010-08-04 00:12:31 +00:00
Bob Wilson
79daf7e0ae
Combine NEON VABD (absolute difference) intrinsics with ADDs to make VABA
...
(absolute difference with accumulate) intrinsics. Radar 8228576.
llvm-svn: 110170
2010-08-04 00:12:08 +00:00
Dan Gohman
794172ca9c
Don't print "Command output (stdout):" when the command has no output,
...
and same for stderr, to avoid clutter in the output.
llvm-svn: 110169
2010-08-04 00:05:16 +00:00
Dan Gohman
c70c6b144a
Use the regular conditional operator syntax instead of a clever hack.
...
llvm-svn: 110168
2010-08-04 00:00:13 +00:00
Dan Gohman
fc419ef6a0
Remove PointerAccessInfo, which nothing was using.
...
llvm-svn: 110167
2010-08-03 23:08:10 +00:00
Chris Lattner
5fba6db223
Make the makefiles go much faster by using the realpath
...
builtin instead of shell. On my 8 core mac pro, this speeds
up a 'make -j8' null build of the lib directory from 1.11s to
0.77s wall time.
Patch by NAKAMURA Takumi!
llvm-svn: 110166
2010-08-03 22:53:22 +00:00
Chris Lattner
53befe7bc1
fix a win64 encoding problem, patch by Cameron Esfahani!
...
llvm-svn: 110164
2010-08-03 22:49:22 +00:00
Dan Gohman
5442c71f2e
Thread const correctness through a bunch of AliasAnalysis interfaces and
...
eliminate several const_casts.
Make CallSite implicitly convertible to ImmutableCallSite.
Rename the getModRefBehavior for intrinsic IDs to
getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite,
which happens to be implicitly convertible to bool.
llvm-svn: 110155
2010-08-03 21:48:53 +00:00
Nate Begeman
b69b182191
Add support for getting & setting the FPSCR application register on ARM when VFP is enabled.
...
Add support for using the FPSCR in conjunction with the vcvtr instruction, for controlling fp to int rounding.
Add support for the FLT_ROUNDS_ node now that the FPSCR is exposed.
llvm-svn: 110152
2010-08-03 21:31:55 +00:00
Dan Gohman
ad867b0aed
The singular of "indices" is "index".
...
llvm-svn: 110135
2010-08-03 20:23:52 +00:00
Dan Gohman
852d6fc50c
Delete an unused function.
...
llvm-svn: 110134
2010-08-03 20:20:56 +00:00
Dan Gohman
3619660529
Make instcombine set explicit alignments on load or store
...
instructions with alignment 0, so that subsequent passes don't
need to bother checking the TargetData ABI size manually.
llvm-svn: 110128
2010-08-03 18:20:32 +00:00
Oscar Fuentes
371b1b91bf
CMake: Change somme target library names:
...
XCore->XCoreGen
PIC16->PIC16CodeGen
After updating your working copy, the first build will fail because it
is using the old library dependencies. Start the build again and it
will work fine.
llvm-svn: 110127
2010-08-03 17:40:31 +00:00
Oscar Fuentes
052c23cd2f
CMake: add version control info to PACKAGE_VERSION, if available.
...
Adds "svn" or "git", depending on the VCS used. If svn, adds the
revision number as well.
llvm-svn: 110121
2010-08-03 17:28:09 +00:00
Dan Gohman
52f9d7d617
Make AliasAnalysis::getModRefInfo conservative in the face of volatility.
...
llvm-svn: 110120
2010-08-03 17:27:43 +00:00
Jakob Stoklund Olesen
0c18757c9d
Oops. Don't normalize spill weights twice.
...
When the normalizeSpillWeights function was introduced, I forgot to remove this
normalization.
This change could affect register allocation. Hopefully for the better.
llvm-svn: 110119
2010-08-03 17:21:16 +00:00
Jakob Stoklund Olesen
011ff9bec9
OK, that's it. This test is going away now. But don't worry, I am taking it to a
...
nice farm in the country where it can play with other tests. And bunnies.
It is not clear what is being tested, and the revision history shows a bunch of
random changes to the expected instruction count. Clearly, we are just fudging
it to pass whenever it fails.
llvm-svn: 110118
2010-08-03 17:21:14 +00:00
Chris Lattner
79102d9725
avoid undefined behavior negating minint.
...
llvm-svn: 110117
2010-08-03 16:57:03 +00:00
Dan Gohman
081627ceb8
Fix a typo Devang noticed.
...
llvm-svn: 110115
2010-08-03 16:48:31 +00:00
Chris Lattner
3db3bb0032
avoid undef behavior on minint, fixing PR7783.
...
llvm-svn: 110114
2010-08-03 16:41:24 +00:00
Peter Collingbourne
ddaaf40d24
Add an atomic lowering pass
...
llvm-svn: 110113
2010-08-03 16:19:16 +00:00
Dan Gohman
35e8a6209d
Use unary + instead of a separate local variable for working
...
around std::min vs static const friction.
llvm-svn: 110112
2010-08-03 16:15:50 +00:00
Oscar Fuentes
758f71af11
Bump cmake_minimum_required to version 2.8
...
llvm-svn: 110110
2010-08-03 15:07:17 +00:00
Daniel Dunbar
edf7b8bd4e
build: Add LLVM_NATIVE_ARCHNAME, which has the sensible value, without "Target"
...
appended.
llvm-svn: 110109
2010-08-03 14:26:17 +00:00
Michael J. Spencer
54cfd42c33
MC: Fix symbol fragment offsets in COFF.
...
Patch by Cameron Esfahani!
llvm-svn: 110104
2010-08-03 05:02:46 +00:00
Michael J. Spencer
d32764c8a0
Revert "MC: Fix symbol fragment offsets in COFF."
...
This reverts commit r110100
Wrong path caps.
llvm-svn: 110103
2010-08-03 04:53:28 +00:00
Michael J. Spencer
a6cfbeb98c
MC: Add time travel support to COFF.
...
llvm-svn: 110101
2010-08-03 04:43:33 +00:00
Michael J. Spencer
cf3d8b4ec4
MC: Fix symbol fragment offsets in COFF.
...
Patch by Cameron Esfahani!
llvm-svn: 110100
2010-08-03 04:43:24 +00:00
Michael J. Spencer
2ce6994211
Fix CMake build
...
llvm-svn: 110097
2010-08-03 02:38:20 +00:00
Bruno Cardoso Lopes
7492a11f0c
Support x86 AVX 256-bit instruction intrinsics. Right now support all of them, but
...
as soon as we properly codegen the simple vector operations in clang, remove the
unnecessary builti-ins/intrinsics from clang and llvm.
llvm-svn: 110094
2010-08-03 01:53:41 +00:00
Dan Gohman
4887001f81
Update some comments.
...
llvm-svn: 110092
2010-08-03 01:07:32 +00:00
Dan Gohman
2a190081f6
Introduce a symbolic constant for ~0u for use with AliasAnalysis.
...
llvm-svn: 110091
2010-08-03 01:03:11 +00:00
Dan Gohman
da7182e116
Add a convenient form of AliasAnalysis::alias for the case where the sizes
...
are unknown.
llvm-svn: 110090
2010-08-03 00:56:30 +00:00
Dan Gohman
7cac95778f
Make SCEVUnknown a CallbackVH, so that it can be notified directly
...
of Value deletions and RAUWs, instead of relying on ScalarEvolution's
Scalars map being notified, as that's complicated at best, and
insufficient in general.
This means SCEVUnknown needs a non-trivial destructor, so introduce
a mechanism to allow ScalarEvolution to locate all the SCEVUnknowns.
llvm-svn: 110086
2010-08-02 23:49:30 +00:00
Stuart Hastings
460a356bf6
Diabolical hack to make a test compatible with clang. (Thanks to Dale!) Radar 8246180.
...
llvm-svn: 110081
2010-08-02 23:29:03 +00:00
Dan Gohman
272980b3f6
Sketch up a preliminary Type-Based Alias Analysis implementation.
...
llvm-svn: 110077
2010-08-02 23:11:01 +00:00
Dan Gohman
9c6e188f56
Fix visitInvokeInst to call visitTerminatorInst, and remove
...
a redundant check from checkInstruction.
llvm-svn: 110076
2010-08-02 23:09:14 +00:00
Dan Gohman
d0a1e3de3f
Add Verifier logic for indirectbr.
...
llvm-svn: 110075
2010-08-02 23:08:33 +00:00
Dan Gohman
d8968da2c5
Add a lint check for indirectbr with no successors.
...
llvm-svn: 110074
2010-08-02 23:06:43 +00:00
Devang Patel
33a2cdf3f9
Add explicit constructors. Patch by Renato Golin.
...
llvm-svn: 110072
2010-08-02 22:51:46 +00:00
Stuart Hastings
0e6e8858ff
Testcase for r110043. Radar 8246180.
...
llvm-svn: 110070
2010-08-02 22:09:53 +00:00
Bill Wendling
44dc60ba13
Early exit and reduce indentation. No functionality change.
...
llvm-svn: 110069
2010-08-02 22:06:08 +00:00
Oscar Fuentes
d945ae652a
Improve discrimination of unknown libraries from ignored targets on
...
LLVMConfig.
llvm-svn: 110065
2010-08-02 21:24:12 +00:00
Oscar Fuentes
e53004b188
explicit_map_components_to_libraries now does not complain when there
...
is a dependence on an LLVM target that is not included on the build.
When LLVM_TARGETS_TO_BUILD didn't include all the targets, the
function emitted an error like
"Library LLVMArmParser not found in list of llvm libraries."
llvm-svn: 110060
2010-08-02 20:48:01 +00:00
Oscar Fuentes
30644950d6
Lets the CMake GUI show a list of possible values for LLVM_USE_CRT
...
Patch by nobled!
llvm-svn: 110057
2010-08-02 19:00:34 +00:00
Dan Gohman
abfafadfc7
Fix namespace polution.
...
llvm-svn: 110056
2010-08-02 18:50:06 +00:00
Oscar Fuentes
e4e9e8e6e7
Updated LLVMLibDeps.cmake.
...
llvm-svn: 110055
2010-08-02 18:36:53 +00:00
Devang Patel
d070128de5
Free DbgScope created for dead functions.
...
llvm-svn: 110045
2010-08-02 17:32:15 +00:00
Kalle Raiskila
77558b7d13
More SPU v2f32 stuff added: insertelement and shuffle.
...
llvm-svn: 110038
2010-08-02 11:22:10 +00:00
Kalle Raiskila
68b3886678
Add preliminary v2f32 support for SPU. Like with v2i32, we just
...
duplicate the instructions and operate on half vectors.
Also reorder code in SPUInstrInfo.td for better coherency.
llvm-svn: 110037
2010-08-02 10:25:47 +00:00
Owen Anderson
8f306a779b
Re-apply the infamous r108614, with a fix pointed out by Dirk Steinke.
...
llvm-svn: 110036
2010-08-02 09:32:13 +00:00
Kalle Raiskila
622f8eb981
Add preliminary v2i32 support for SPU backend. As there are no
...
such registers in SPU, this support boils down to "emulating"
them by duplicating instructions on the general purpose registers.
This adds the most basic operations on v2i32: passing parameters,
addition, subtraction, multiplication and a few others.
llvm-svn: 110035
2010-08-02 08:54:39 +00:00
Oscar Fuentes
40b31ad3ee
Prefix `next' iterator operation with `llvm::'.
...
Fixes potential ambiguity problems on VS 2010.
Patch by nobled!
llvm-svn: 110029
2010-08-02 06:00:15 +00:00
Daniel Dunbar
c1b09c8644
Fix a -Wreorder warning.
...
llvm-svn: 110022
2010-08-02 05:43:46 +00:00
Nick Lewycky
f52bd9cc33
Work in progress.
...
Start cleaning up MergeFunctions to look more like the rest of LLVM. The
primary change here is to move the methods responsible for comparison into the
new FunctionComparator object. Some comments added. There's more to do.
llvm-svn: 110021
2010-08-02 05:23:03 +00:00
Eli Friedman
460ad41d6d
PR7586: Make sure we don't claim that unknown bits are actually known in the
...
ISD::AND case of TargetLowering::SimplifyDemandedBits.
llvm-svn: 110019
2010-08-02 04:42:25 +00:00
Nick Lewycky
adaf5172bf
Fix this condition; it has an else clause attached for Darwin only. Patch
...
by Takumi Nakamura.
llvm-svn: 110016
2010-08-02 03:16:19 +00:00
Daniel Dunbar
1465d7cffa
Fix comment.
...
llvm-svn: 110006
2010-08-02 01:25:20 +00:00
Daniel Dunbar
f85eb933d4
docs/TestingGuide: Minimal update to describe 'lit' based regression testing
...
instead of DejaGNU. Still a bit kooky, since the current test format still has
some strong Tcl roots. Oh well!
llvm-svn: 110005
2010-08-02 01:20:23 +00:00
Daniel Dunbar
a9075c5ead
docs/TestingGuide: Rip out description of old nightly tester infrastructure. The
...
official recommendation is to use LNT instead. I will write docs on setting up
an LNT installation for submission to llvm.org, one day.
llvm-svn: 110004
2010-08-02 01:20:20 +00:00
Daniel Dunbar
5eeae48783
tests: Kill off custom targets which were just there for TestRunner.sh.
...
llvm-svn: 110003
2010-08-02 00:52:44 +00:00
Daniel Dunbar
4b77d23d40
tests: Deprecate TestRunner.sh, and have it just invoke 'llvm-lit' (which will
...
need to be in your path). Please move to using 'llvm-lit' if you are still using
TestRunner.sh.
llvm-svn: 110002
2010-08-02 00:52:41 +00:00
Daniel Dunbar
1390d189f3
build: Fix a dependency.
...
llvm-svn: 110001
2010-08-02 00:45:41 +00:00
Daniel Dunbar
a19db3594f
tests: Add an 'llvm-lit' tool (script), which gets generated as part of the
...
build and has the object build directory baked into it. This allows 'llvm-lit'
to properly find the information needed to run the test suite in all cases,
without requiring the user to have LLVM or 'lit' available in their PATH, for
example.
llvm-svn: 110000
2010-08-02 00:39:42 +00:00
Daniel Dunbar
38a867aca6
lit: Allow clients to define predefined parameters.
...
llvm-svn: 109999
2010-08-02 00:39:38 +00:00
Eli Friedman
7595ce05a2
PR7781: Fix incorrect shifting in PPCTargetLowering::LowerBUILD_VECTOR.
...
llvm-svn: 109998
2010-08-02 00:18:19 +00:00
Daniel Dunbar
b1af605e58
tests: Make 'lit' the default test tool. You can still use 'make check-dg' to
...
run the tests using DejaGNU, but not for much longer. This is a last call for
DejaGNU supporters, if no one complains soon the DejaGNU support is going to
die.
llvm-svn: 109997
2010-08-02 00:05:18 +00:00
Daniel Dunbar
df77432f8a
Targets: Add InitializeNativeTargetAsmPrinter(), patch by Jan Sjodin, although
...
rewritten by me to not require updating all the target initialization routine
names.
llvm-svn: 109996
2010-08-01 23:36:18 +00:00
Nick Lewycky
daf67727a3
Fix word choice.
...
llvm-svn: 109995
2010-08-01 23:18:45 +00:00
Eli Friedman
1b2bc1b844
PR7774: Fix undefined shifts in Alpha backend. As a bonus, this actually
...
improves the generated code in some cases.
llvm-svn: 109985
2010-08-01 21:13:28 +00:00
Benjamin Kramer
3d4af4e91e
Preallocate vector, avoid unnecessary vector growth.
...
llvm-svn: 109971
2010-08-01 11:43:26 +00:00
Bill Wendling
d9900542a6
Reference the personalities. Don't copy them into a new vector.
...
llvm-svn: 109966
2010-08-01 01:34:21 +00:00
Bob Wilson
66161f5eb4
Revert new AVX intrinsic tests. They are breaking buildbots and Bruno is
...
away from a computer now.
--- Reverse-merging r109881 into '.':
D test/CodeGen/X86/avx-intrinsics-x86.ll
D test/CodeGen/X86/avx-intrinsics-x86_64.ll
llvm-svn: 109959
2010-07-31 22:36:03 +00:00
Daniel Dunbar
40842fa2ee
build: Don't pass -avoid-version or -no-undefined on Darwin, they don't do
...
anything.
llvm-svn: 109957
2010-07-31 21:32:56 +00:00
Daniel Dunbar
727be43a3d
Silence some -Asserts uninitialized variable warnings.
...
llvm-svn: 109956
2010-07-31 21:08:54 +00:00
Michael J. Spencer
f695f8f9ed
llc: Add -mc-relax-all.
...
llvm-svn: 109954
2010-07-31 19:57:02 +00:00
Daniel Dunbar
0b636a24c7
Speculatively revert r108614, "Another attempt at getting the clang self-host to
...
like my instcombine patch.", in an attempt to fix Clang i386 bootstrap.
- Also PR7719.
llvm-svn: 109953
2010-07-31 19:51:11 +00:00
Rafael Espindola
e490460fc8
Add const to some methods and change TestMergedProgram to return the merged
...
module and take a const BugDriver.
llvm-svn: 109951
2010-07-31 14:34:49 +00:00
Gabor Greif
779e4b15f1
doxygenize argument accessors
...
llvm-svn: 109950
2010-07-31 08:35:21 +00:00
Michael J. Spencer
ed80f361b3
MC: Remove HasAbsolutizedSet from WindowsX86AsmBackend.
...
llvm-svn: 109949
2010-07-31 07:21:44 +00:00
Bob Wilson
b128824b60
Move newlines before inline jumptables from the asm strings in .td files to
...
the jtblock_operand print methods. This avoids extra newlines in the
disassembler's output. PR7757.
llvm-svn: 109948
2010-07-31 06:28:10 +00:00
Michael J. Spencer
6b4925e223
Add relax all support to the COFF object streamer.
...
llvm-svn: 109947
2010-07-31 06:22:29 +00:00
Bob Wilson
cd5fc7bef1
Add support for disassembling VMVN (immediate) instructions. PR7747.
...
llvm-svn: 109946
2010-07-31 05:57:44 +00:00
Rafael Espindola
40f18838b7
The BlockExtractorPass() constructor was not reading the BlockFile and that was
...
exactly what bugpoint expected it to do.
There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.
This fixes bugpoint's block extraction.
Nick, please review.
llvm-svn: 109936
2010-07-31 00:32:17 +00:00
Owen Anderson
c1561b8400
Add an initial implementation of PHI translation for LazyValueInfo. This involves rolling back some
...
of my earlier data structure improvements until I can ensure that there are no iterator invalidation problems.
llvm-svn: 109935
2010-07-30 23:59:40 +00:00
Evan Cheng
59069ec784
Add -disable-shifter-op to disable isel of shifter ops. On Cortex-a9 the shifts cost extra instructions so it might be better to emit them separately to take advantage of dual-issues.
...
llvm-svn: 109934
2010-07-30 23:33:54 +00:00
Bob Wilson
eb7b21f3eb
Add a check in the ARM disassembler for NEON instructions that would
...
reference registers past the end of the NEON register file, and report them
as invalid instead of asserting when trying to print them. PR7746.
llvm-svn: 109933
2010-07-30 23:27:59 +00:00
Bill Wendling
9b8d586039
Add a "Compare" flag to the target instruction descriptor. This will be used
...
later to identify and possibly remove superfluous compare instructions -- those
that are testing for and setting a status flag that should already be set.
llvm-svn: 109901
2010-07-30 22:48:39 +00:00
Dale Johannesen
cf0287e56d
PPC doesn't supported VLA with large alignment. This was
...
formerly rejected by the FE, so asserted in the BE; now the FE only
warns, so we treat it as a legitimate fatal error in PPC BE.
This means the test for the feature won't pass, so it's xfail'd.
llvm-svn: 109892
2010-07-30 21:09:48 +00:00
Dan Gohman
d566d2c7b5
Move MaximumAlignment to be a member of the Value class.
...
llvm-svn: 109891
2010-07-30 21:07:05 +00:00
Owen Anderson
e4a0ab69d2
Revert my last two patches to LVI, which recent changes have exposed a miscompilation in.
...
llvm-svn: 109889
2010-07-30 20:56:07 +00:00
Nick Lewycky
299c6dfcbf
Add missing newline to debug statement.
...
llvm-svn: 109886
2010-07-30 20:27:01 +00:00
Nick Lewycky
916a28b16a
LibCallAliasAnalysis uses multiple inheritance, so it needs to implement
...
getAdjustedAnalysisPointer. Part of a fix to PR7760.
llvm-svn: 109883
2010-07-30 20:19:09 +00:00
Bruno Cardoso Lopes
92941fdb26
A *bunch* of tests for AVX intrinsics
...
llvm-svn: 109881
2010-07-30 19:57:56 +00:00
Bob Wilson
4320e2d1bb
Add the __TEXT,__StaticInit section to the list of sections emitted at the
...
beginning on ARM Darwin assembly files so that it won't be placed after
debug sections. Radar 8252813.
llvm-svn: 109879
2010-07-30 19:55:47 +00:00
Bruno Cardoso Lopes
349165b48f
Support all 128-bit AVX vector intrinsics. Most part of them I already
...
declared during the addition of the assembler support, the additional
changes are:
- Add missing intrinsics
- Move all SSE conversion instructions in X86InstInfo64.td to the SSE.td file.
- Duplicate some patterns to AVX mode.
- Step into PCMPEST/PCMPIST custom inserter and add AVX versions.
llvm-svn: 109878
2010-07-30 19:54:33 +00:00
Bruno Cardoso Lopes
405405bbfe
Fix typo!
...
llvm-svn: 109877
2010-07-30 19:41:24 +00:00
Bob Wilson
964179cb58
Attempt to fix the llvm-gcc-powerpc-darwin9 buildbot.
...
llvm-svn: 109876
2010-07-30 18:52:47 +00:00
Daniel Dunbar
5dc31317dd
MC: Initialize MCFragment::Offset, noticed by Cameron Esfahani.
...
llvm-svn: 109875
2010-07-30 18:32:09 +00:00
Daniel Dunbar
c90e82a7f1
Fix -Wmissing-field-initializers warnings.
...
llvm-svn: 109872
2010-07-30 17:49:04 +00:00
John Criswell
ad05ae483f
Grammar cop pullover: Corrected and improved some grammar in the description of
...
the llvm.memset() intrinsic family.
No content changes.
llvm-svn: 109863
2010-07-30 16:30:28 +00:00
Rafael Espindola
c89b1ef0a9
Add a Program argument to diffProgram to avoid a use of swapProgramIn.
...
llvm-svn: 109859
2010-07-30 14:19:00 +00:00
Benjamin Kramer
f9d5fe7fbd
Tweak suppressions.
...
llvm-svn: 109858
2010-07-30 12:18:36 +00:00
Eli Friedman
ffe64c06ef
Fix for bug reported by Evzen Muller on llvm-commits: make sure to correctly
...
check the range of the constant when optimizing a comparison between a
constant and a sign_extend_inreg node.
llvm-svn: 109854
2010-07-30 06:44:31 +00:00
Duncan Sands
6263d492b5
Do not pass a copy of the value map, pass a reference to it.
...
llvm-svn: 109852
2010-07-30 05:50:45 +00:00
Duncan Sands
cb59bfa7ec
Fix the ValueMap copy constructor. The issue is that the map keys are value
...
handles with a pointer to the containing map. When a map is copied, these
pointers need to be corrected to point to the new map. If not, then consider
the case of a map M1 which maps a value V to something. Create a copy M2 of
M1. At this point there are two value handles on V, one representing V as a
key in M1, the other representing V as a key in M2. But both value handles
point to M1 as the containing map. Now delete V. The value handles remove
themselves from their containing map (which destroys them), but only the first
value handle is successful: the second one cannot remove itself from M1 as
(once the first one has removed itself) there is nothing there to remove; it
is therefore not destroyed. This causes an assertion failure "All references
to V were not removed?".
llvm-svn: 109851
2010-07-30 05:49:32 +00:00
Jim Grosbach
d343166a0b
Many Thumb2 instructions can reference the full ARM register set (i.e.,
...
have 4 bits per register in the operand encoding), but have undefined
behavior when the operand value is 13 or 15 (SP and PC, respectively).
The trivial coalescer in linear scan sometimes will merge a copy from
SP into a subsequent instruction which uses the copy, and if that
instruction cannot legally reference SP, we get bad code such as:
mls r0,r9,r0,sp
instead of:
mov r2, sp
mls r0, r9, r0, r2
This patch adds a new register class for use by Thumb2 that excludes
the problematic registers (SP and PC) and is used instead of GPR
for those operands which cannot legally reference PC or SP. The
trivial coalescer explicitly requires that the register class
of the destination for the COPY instruction contain the source
register for the COPY to be considered for coalescing. This prevents
errant instructions like that above.
PR7499
llvm-svn: 109842
2010-07-30 02:41:01 +00:00
Gabor Greif
56c38bda40
remove a layer of cruft
...
llvm-svn: 109821
2010-07-29 23:35:00 +00:00
Eric Christopher
2e276485cb
Fix this up per llvm-gcc r109819.
...
llvm-svn: 109820
2010-07-29 23:20:29 +00:00
Benjamin Kramer
2e357b62bb
Supress valgrind errors from python.
...
llvm-svn: 109818
2010-07-29 23:15:04 +00:00
Bob Wilson
dbc3f3ff28
Remove the temporary hack, now that the llvm-i686-linux buildbot has
...
completed a successful build.
llvm-svn: 109815
2010-07-29 22:55:29 +00:00
Nate Begeman
c4a96c0e8c
Add builtins for ssat/usat, similar to RealView's __ssat and __usat intrinsics.
...
llvm-svn: 109813
2010-07-29 22:48:09 +00:00
Bob Wilson
f2903999b3
Fix the temporary hack.
...
llvm-svn: 109810
2010-07-29 22:33:35 +00:00
Daniel Dunbar
79bd45ee1f
Temporary hack to ensure stale Analysis dir is cleaned up on llvm-i686-linux.
...
llvm-svn: 109809
2010-07-29 22:18:50 +00:00
Benjamin Kramer
d9624e2d2e
Remove XFAIL, test doesn't leak anymore.
...
llvm-svn: 109801
2010-07-29 20:36:36 +00:00
Bob Wilson
728eb292eb
Refactor ARM-specific DAG combining in preparation for adding some more
...
transformations.
llvm-svn: 109800
2010-07-29 20:34:14 +00:00
Dale Johannesen
2bff50546c
Implement vector constants which are splat of
...
integers with mov + vdup. 8003375. This is
currently disabled by default because LICM will
not hoist a VDUP, so it pessimizes the code if
the construct occurs inside a loop (8248029).
llvm-svn: 109799
2010-07-29 20:10:08 +00:00
Bob Wilson
a9bf1b1493
Don't assert on an unrecognized BrMiscFrm instruction.
...
PR7745.
llvm-svn: 109788
2010-07-29 18:29:28 +00:00
John McCall
9ad943ef28
Transcribe IRC to svn. Also don't print basic block names twice if they match.
...
llvm-svn: 109787
2010-07-29 18:20:13 +00:00
Eric Christopher
be2bb0d337
Grammar.
...
llvm-svn: 109775
2010-07-29 18:11:28 +00:00
John McCall
61483f0e1f
Make the header self-contained and follow #include guidelines.
...
llvm-svn: 109774
2010-07-29 18:08:23 +00:00
Eli Friedman
0428a61e45
PR7750: !CExpr->isNullValue() only properly computes whether CExpr is nonnull
...
if CExpr is a ConstantInt.
llvm-svn: 109773
2010-07-29 18:03:33 +00:00
Owen Anderson
b2c657c618
Make un-named values legible in certain vim configurations.
...
llvm-svn: 109772
2010-07-29 17:57:57 +00:00
Nate Begeman
7010a71ac4
Add intrinsics __builtin_arm_qadd & __builtin_arm_qsub to allow access to the QADD & QSUB instructions.
...
Behave identically to __qadd & __qsub RealView instruction intrinsics.
llvm-svn: 109770
2010-07-29 17:56:55 +00:00
John McCall
58c5088d48
Switch to using the LLVM CommandLine library so that our help
...
message is properly contaminated with nonsense about timing passes
that doesn't apply at all to this utility. :)
llvm-svn: 109769
2010-07-29 17:55:00 +00:00
Benjamin Kramer
a3e0ddb564
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.
...
llvm-svn: 109767
2010-07-29 17:48:06 +00:00
Dale Johannesen
329d4741a5
Comment typo.
...
llvm-svn: 109765
2010-07-29 17:45:24 +00:00
Jakob Stoklund Olesen
ba0e124aaf
Revert r109652, and remove the offending assert in loadRegFromStackSlot instead.
...
We do sometimes load from a too small stack slot when dealing with x86 arguments
(varargs and smaller-than-32-bit args). It looks like we know what we are doing
in those cases, so I am going to remove the assert instead of artifically
enlarging stack slot sizes.
The assert in storeRegToStackSlot stays in. We don't want to write beyond the
bounds of a stack slot.
llvm-svn: 109764
2010-07-29 17:42:27 +00:00
Daniel Dunbar
4a338e3dc4
CrashRecovery: Use ThreadLocal::erase() instead of set(0).
...
llvm-svn: 109752
2010-07-29 15:24:21 +00:00
Rafael Espindola
07035e6a00
Make the test while reducing blocks functional. This avoids accessing freed
...
memory when one of the original BB is destroyed.
llvm-svn: 109747
2010-07-29 14:20:59 +00:00
Benjamin Kramer
bccfec653d
Stop leaking std::strings in GetDwarfFile.
...
llvm-svn: 109746
2010-07-29 13:53:19 +00:00
Benjamin Kramer
c2997dde85
COFFObjectWriter: Don't leak COFFSymbols and COFFSections.
...
llvm-svn: 109745
2010-07-29 11:57:59 +00:00
John McCall
eaeede9a06
Centralize the logic to permanently unify two instructions and make sure
...
it establishes a context and does a complaining diff. Also make sure we
unify the prelude and postlude of a diff after a block-diff call.
llvm-svn: 109744
2010-07-29 09:20:34 +00:00
John McCall
8489de298e
Diagnose non-structural differences in the case where blocks were
...
structurally identical.
llvm-svn: 109743
2010-07-29 09:04:45 +00:00
John McCall
0ed6b1326c
When unifying instructions during a block diff, actually complain about
...
any differences we see. This should only happen if there are "non-structural"
differences between the instructions, i.e. differences which wouldn't cause
diff to return true.
llvm-svn: 109742
2010-07-29 08:59:27 +00:00
John McCall
d293c4e6e0
Somehow I was getting reasonable results for the test cases I was interested
...
in despite not ever incrementing any path costs, so that the only nonzero costs
arose from the all-left path in the first column. Anyway. Perform the diff
starting from the beginning of the block to avoid capturing (say) loads of
allocas.
Vastly improves diff results on code that hasn't been mem2reg'ed.
llvm-svn: 109741
2010-07-29 08:53:59 +00:00
John McCall
10c91bfa66
Cache the result of errs() and implement formatted logging.
...
llvm-svn: 109740
2010-07-29 08:14:41 +00:00
John McCall
5e6a16d71f
Add the llvm-diff tool, which performs a relatively naive structural
...
diff of a function. There's a lot of cruft in the current version, and
it's pretty far from perfect, but it's usable.
Currently only capable of comparing functions. Currently ignores metadata.
Currently ignores most attributes of functions and instructions.
Patches welcome.
llvm-svn: 109739
2010-07-29 07:53:27 +00:00
Daniel Dunbar
9789f81eb4
Make sure to include config.h, to pickup LLVM_ON_WIN32.
...
llvm-svn: 109721
2010-07-29 01:52:04 +00:00
Daniel Dunbar
b759a13da8
MC: Destroy Macro instances.
...
llvm-svn: 109720
2010-07-29 01:51:55 +00:00
Eric Christopher
ef6d5933a6
Speculatively revert r109705 since it seems to be causing some build bot
...
angst.
llvm-svn: 109718
2010-07-29 01:25:38 +00:00
Daniel Dunbar
af77e22b36
CrashRecoveryContext: Add a simple POSIX implementation.
...
- This works, but won't handle crashes on stack overflow, or signals delivered
to a thread other than the one that crashed. The latter is particular annoying
on Darwin, because SIGABRT tends to go to the main thread.
llvm-svn: 109717
2010-07-29 01:21:47 +00:00
Jakob Stoklund Olesen
36cf119049
Fix a bug in the -regalloc=fast handling of exotic two-address instruction with
...
multiple defs, like t2LDRSB_POST.
The first def could accidentally steal the physreg that the second, tied def was
required to be allocated to.
Now, the tied use-def is treated more like an early clobber, and the physreg is
reserved before allocating the other defs.
This would never be a problem when the tied def was the only def which is the
usual case.
This fixes MallocBench/gs for thumb2 -O0.
llvm-svn: 109715
2010-07-29 00:52:19 +00:00
Jakob Stoklund Olesen
1222249aab
Use the right gcc tool args for IsARMArchitecture.
...
llvm-svn: 109714
2010-07-29 00:52:16 +00:00
Dan Gohman
3d6ac44d96
Factor out some of the code for updating old SCEVUnknown values, and
...
extend it to handle the case where multiple RAUWs affect a single
SCEVUnknown.
Add a ScalarEvolution unittest to test for this situation.
llvm-svn: 109705
2010-07-29 00:17:55 +00:00
Owen Anderson
a44f49f189
Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation.
...
llvm-svn: 109701
2010-07-28 23:50:08 +00:00
Jim Grosbach
c445a7d29b
ARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
...
llvm-svn: 109696
2010-07-28 23:25:44 +00:00
Jim Grosbach
716a596cf7
Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
...
llvm-svn: 109693
2010-07-28 23:17:45 +00:00
Jim Grosbach
de0874a4bc
Remove dead prototype
...
llvm-svn: 109691
2010-07-28 23:16:12 +00:00
Gabor Greif
62f0aac99d
simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree
...
llvm-svn: 109687
2010-07-28 22:50:26 +00:00
Owen Anderson
cfc2a57fcd
Add an erase() method to llvm::ThreadLocal.
...
llvm-svn: 109686
2010-07-28 22:49:43 +00:00
Owen Anderson
bcaba485ce
Add more doxygen comments for llvm::ThreadLocal.
...
llvm-svn: 109683
2010-07-28 22:30:53 +00:00
Owen Anderson
6982dd4e1f
Get rid of LVIQuery as a distinct data structure, so that we don't have to initialize a new set of maps on every query.
...
llvm-svn: 109679
2010-07-28 22:07:25 +00:00
Dan Gohman
7e4163d48e
Move MaximumAlignment to Value.h, now that GlobalValue.h needs it.
...
llvm-svn: 109656
2010-07-28 21:02:38 +00:00
Dan Gohman
390914cbe8
Make GlobalValue alignment consistent with load, store, and alloca
...
alignment, fixing silent truncation of alignment values.
llvm-svn: 109653
2010-07-28 20:56:48 +00:00
Jakob Stoklund Olesen
f2234fbe70
Create a fixed stack object for varargs that is as large as any register.
...
The size of this object isn't used for anything - technically it is of variable
size.
This avoids a false positive from the assert in
X86InstrInfo::loadRegFromStackSlot, and fixes PR7735.
llvm-svn: 109652
2010-07-28 20:55:38 +00:00
Kevin Enderby
e5930f142a
Added first bit of support for the dwarf .file directive. This patch collects
...
the info from the .file directive and makes file and directory tables that
will eventually be put out as part of the dwarf info in the output file.
llvm-svn: 109651
2010-07-28 20:55:35 +00:00
Daniel Dunbar
18e39cec7a
RegionInfo: Make sure to free cached nodes; Tobias, please check!
...
llvm-svn: 109650
2010-07-28 20:28:50 +00:00
Daniel Dunbar
e397dded7b
MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh).
...
llvm-svn: 109649
2010-07-28 20:28:45 +00:00
Eric Christopher
f7eb811d1a
Regenerate.
...
llvm-svn: 109647
2010-07-28 20:26:43 +00:00
Eric Christopher
84c95cc9b5
Use a C++ compiler for the atomic builtin check since we'll
...
be using a C++ compiler to build.
Patch by Török Edwin!
llvm-svn: 109646
2010-07-28 20:26:34 +00:00
Dan Gohman
a7e5a24093
Define a maximum supported alignment value for load, store, and
...
alloca instructions (constrained by their internal encoding),
and add error checking for it. Fix an instcombine bug which
generated huge alignment values (null is infinitely aligned).
This fixes undefined behavior noticed by John Regehr.
llvm-svn: 109643
2010-07-28 20:12:04 +00:00
Jakob Stoklund Olesen
0ff2c110ad
Print out the regclass of any virtual registers used by a machine instruction.
...
llvm-svn: 109608
2010-07-28 18:35:46 +00:00
Bob Wilson
59fba9d2b9
Fix a warning from gcc-4.0 (from the ppc buildbot).
...
llvm-svn: 109605
2010-07-28 18:21:10 +00:00
Rafael Espindola
594994a34c
Instead of abusing swapProgramIn, just add a Module argument to
...
EmitProgressBitcode.
llvm-svn: 109602
2010-07-28 18:12:30 +00:00
Douglas Gregor
b7b5a7dff0
Unbreak my CMake build, say you'll compile for me again...
...
llvm-svn: 109598
2010-07-28 17:17:46 +00:00
Dan Gohman
1da02dfbe3
Fix this code to avoid decrementing an iterator past the beginning
...
of a std::vector.
llvm-svn: 109597
2010-07-28 17:15:36 +00:00
Dan Gohman
9cd20bf792
When user code intentionally dereferences null, the alignment of the
...
dereference is theoretically infinite. Put a cap on the computed
alignment to avoid overflow, noticed by John Regehr.
llvm-svn: 109596
2010-07-28 17:14:23 +00:00
Dan Gohman
32f889e552
Do GEP offset calculations with unsigned math rather than signed math
...
to avoid undefined behavior on overflow, noticed by John Regehr.
llvm-svn: 109594
2010-07-28 17:11:36 +00:00
Dan Gohman
44ee74292f
Add some extra friend declarations to fix a gcc-4.0 compile error.
...
This is a temporary fix, until more elaborate changes are ready.
llvm-svn: 109593
2010-07-28 17:09:24 +00:00
Gabor Greif
f0084e1333
simplify
...
llvm-svn: 109589
2010-07-28 15:52:43 +00:00
Daniel Dunbar
19a3b37441
Support: Add CrashRecoveryContext helper object.
...
- Designed as a simple wrapper to allow clients to attempt to catch crashes
(memory errors, assertion violations, etc.) and do some kind of recovery.
- Currently doesn't actually attempt to catch crashes.
llvm-svn: 109586
2010-07-28 15:40:20 +00:00
Gabor Greif
e497e5ef46
simplify
...
llvm-svn: 109585
2010-07-28 15:31:37 +00:00
Gabor Greif
0a970698da
use Value* constructor of CallSite to create potentially improper site, and test that
...
llvm-svn: 109581
2010-07-28 14:28:18 +00:00
Gabor Greif
5bf74d648d
use Value* constructor of CallSite to create potentially improper site, and test that
...
llvm-svn: 109580
2010-07-28 12:35:54 +00:00
Gabor Greif
67a970bff2
use Value* constructor of CallSite to create potentially improper site
...
llvm-svn: 109579
2010-07-28 12:19:46 +00:00
Gabor Greif
7cf6056484
simplify
...
llvm-svn: 109578
2010-07-28 10:57:28 +00:00
Gabor Greif
2e2503cd8d
simplify
...
llvm-svn: 109577
2010-07-28 10:46:09 +00:00
Gabor Greif
02fbd6b8ce
we are supposed to only create proper CallSites from an instruction (esp. CallInst and InvokeInst)
...
llvm-svn: 109576
2010-07-28 10:44:59 +00:00
Eric Christopher
e1270c64e3
Filter out patterns that have PredicateOperands.
...
llvm-svn: 109572
2010-07-28 01:52:23 +00:00
Dan Gohman
7a066723d0
Make SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown
...
object, as it may still be referenced by SCEVs not cleaned up by the
use list traversal.
Also, in ScalarEvolution::forgetValue, only check for a SCEVUnknown
object for the original value, not for any value in the use list,
because other SCEVUnknown values aren't necessary obsolete at that
point.
llvm-svn: 109570
2010-07-28 01:09:07 +00:00
Dan Gohman
8aeb0fb5ca
Make SCEVCallbackVH::allUsesReplacedWith unconditionally delete
...
the old value.
llvm-svn: 109567
2010-07-28 00:28:25 +00:00
Nate Begeman
53afc8f06a
Implement a vectorized algorithm for <16 x i8> << <16 x i8>
...
This is about 4x faster and smaller than the existing scalarization.
llvm-svn: 109566
2010-07-28 00:21:48 +00:00
Dan Gohman
a3659efe09
Add a comment.
...
llvm-svn: 109565
2010-07-28 00:21:18 +00:00
Owen Anderson
aac5a72139
Rearrange several datastructures in LazyValueInfo to improve compile time.
...
This is still not perfect, but better than it was before.
llvm-svn: 109563
2010-07-27 23:58:11 +00:00
Owen Anderson
462b205ffe
Fill out the interface of DenseSet a bit.
...
llvm-svn: 109562
2010-07-27 23:55:47 +00:00
Stuart Hastings
a7f1d4a2ba
Testcase for r109556. Radar 8198362.
...
llvm-svn: 109557
2010-07-27 23:15:25 +00:00
Gabor Greif
0630a71742
reintroduce original (asserting) semantics of CallSite(Instruction *II)
...
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize
and use that one in client code
llvm-svn: 109553
2010-07-27 22:53:28 +00:00
Nate Begeman
269a6da023
~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types coming in future patches.
...
For:
define <2 x i64> @shl(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp {
entry:
%shl = shl <4 x i32> %r, %a ; <<4 x i32>> [#uses=1]
%tmp2 = bitcast <4 x i32> %shl to <2 x i64> ; <<2 x i64>> [#uses=1]
ret <2 x i64> %tmp2
}
We get:
_shl: ## @shl
pslld $23, %xmm1
paddd LCPI0_0, %xmm1
cvttps2dq %xmm1, %xmm1
pmulld %xmm1, %xmm0
ret
Instead of:
_shl: ## @shl
pshufd $3, %xmm0, %xmm2
movd %xmm2, %eax
pshufd $3, %xmm1, %xmm2
movd %xmm2, %ecx
shll %cl, %eax
movd %eax, %xmm2
pshufd $1, %xmm0, %xmm3
movd %xmm3, %eax
pshufd $1, %xmm1, %xmm3
movd %xmm3, %ecx
shll %cl, %eax
movd %eax, %xmm3
punpckldq %xmm2, %xmm3
movd %xmm0, %eax
movd %xmm1, %ecx
shll %cl, %eax
movd %eax, %xmm2
movhlps %xmm0, %xmm0
movd %xmm0, %eax
movhlps %xmm1, %xmm1
movd %xmm1, %ecx
shll %cl, %eax
movd %eax, %xmm0
punpckldq %xmm0, %xmm2
movdqa %xmm2, %xmm0
punpckldq %xmm3, %xmm0
ret
llvm-svn: 109549
2010-07-27 22:37:06 +00:00
Gabor Greif
ef1ca24b91
recommit simplification (originally r109504, backed out in r109508) now that problem in CallSiteBase is fixed
...
llvm-svn: 109547
2010-07-27 22:02:00 +00:00
Gabor Greif
63f55c49f2
remove bogus assert, use static_cast for additional checking
...
left two new asserts commented out, because they would fire in clang, have to hunt those down first
llvm-svn: 109544
2010-07-27 21:46:11 +00:00
Devang Patel
84a74779a1
It is FE's responsibility to emit proper directory name.
...
llvm-svn: 109538
2010-07-27 20:51:15 +00:00
Chris Lattner
425592a9d8
make lookup failures not fatal.
...
llvm-svn: 109530
2010-07-27 18:59:50 +00:00
Jim Grosbach
7383cf06ba
Grammar
...
llvm-svn: 109525
2010-07-27 18:36:27 +00:00
Devang Patel
bd32256e25
Update tests to not rely on input file's absolute path.
...
llvm-svn: 109521
2010-07-27 18:13:53 +00:00
Nate Begeman
317b969ac5
Fix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself
...
recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR.
llvm-svn: 109519
2010-07-27 18:02:18 +00:00
Jim Grosbach
2ff0e64bc3
80 column
...
llvm-svn: 109513
2010-07-27 17:38:47 +00:00
Jim Grosbach
7639967e6c
fix typo
...
llvm-svn: 109511
2010-07-27 17:14:29 +00:00
Gabor Greif
f159085414
recommit simplification (r109502, backed out r109509); seems to innocent
...
llvm-svn: 109510
2010-07-27 16:44:23 +00:00
Gabor Greif
5f91b7cf3e
back out this too to restore the bots
...
llvm-svn: 109509
2010-07-27 15:56:07 +00:00
Gabor Greif
ed1d92cb9a
back out r109504, breaks the bots
...
llvm-svn: 109508
2010-07-27 15:18:11 +00:00
Gabor Greif
7b0a5fd2a5
simplify: CallSite::get --> CallSite constructor
...
llvm-svn: 109506
2010-07-27 15:02:37 +00:00
Gabor Greif
195a609c37
simplify
...
llvm-svn: 109504
2010-07-27 14:38:38 +00:00
Gabor Greif
d59498bc97
use ImmutableCallSite for const-corrgoodness
...
llvm-svn: 109503
2010-07-27 14:15:29 +00:00
Gabor Greif
7527b2ed5c
simplify
...
llvm-svn: 109502
2010-07-27 13:31:22 +00:00
Mikhail Glushenkov
ee68696c5f
Fix silent failure with no input files.
...
llvm-svn: 109500
2010-07-27 11:19:40 +00:00
Mikhail Glushenkov
d359cf2e44
Return -1 only on failure to execute a program.
...
Also fix some comments.
llvm-svn: 109499
2010-07-27 11:19:36 +00:00
Duncan Sands
eb58ed8b5a
In commit 91421, isPod was changed from false to true for these value handles.
...
Change it back again: destructors and constructors need to be run.
llvm-svn: 109498
2010-07-27 09:09:05 +00:00
Tobias Grosser
731b079edb
Make coff-dump.py executable and add python as executable for this script.
...
This fixes the MC/COFF/basic-coff.ll test case.
llvm-svn: 109497
2010-07-27 09:01:26 +00:00
Tobias Grosser
fc763867d5
RegionInfo: Add getMaxRegionExit()
...
getMaxRegionExit returns the exit of the maximal refined region starting
at a specific basic block.
llvm-svn: 109496
2010-07-27 08:39:43 +00:00
Duncan Sands
fd5c8329cf
After updating value handles for RAUW, check that no weak or tracking handles
...
are still on the list. This might happen if a CallbackVH created some new value
handles for the old value when doing RAUW. Barf if it occurs, since it is almost
certainly a mistake.
llvm-svn: 109495
2010-07-27 06:53:14 +00:00
Michael J. Spencer
f8270bdb2d
Make MC use Windows COFF on Windows and add tests.
...
llvm-svn: 109494
2010-07-27 06:46:15 +00:00
Tobias Grosser
1bec81a888
Add function to query RegionInfo about loops.
...
* contains(Loop), * getOutermostLoop()
* Improve getNameStr() to return a sensible name, if basic blocks are not named.
llvm-svn: 109490
2010-07-27 04:17:13 +00:00
Jakob Stoklund Olesen
96a890a7f8
The isLoadFromStackSlot and isStoreToStackSlot have no way of reporting
...
subregister operands like this:
%reg1040:sub_32bit<def> = MOV32rm <fi#-2>, 1, %reg0, 0, %reg0, %reg1040<imp-def>; mem:LD4[FixedStack-2](align=8)
Make them return false when subreg operands are present. VirtRegRewriter is
making bad assumptions otherwise.
This fixes PR7713.
llvm-svn: 109489
2010-07-27 04:17:01 +00:00
Jakob Stoklund Olesen
c3c05ed02e
Add assertions that expose the PR7713 miscompilation: Accessing a stack slot
...
with a too-big register class.
llvm-svn: 109488
2010-07-27 04:16:58 +00:00
Bill Wendling
0ff1ef650b
It's better to have the arrays, which would trigger the creation of stack
...
protectors, to be near the stack protectors on the stack. Accomplish this by
tagging the stack object with a predicate that indicates that it would trigger
this. In the prolog-epilog inserter, assign these objects to the stack after the
stack protector but before the other objects.
llvm-svn: 109481
2010-07-27 01:55:19 +00:00
Dan Gohman
86ac5d85a4
Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify
...
that the values they refer to aren't being deleted underneath them.
Make sure these containters get cleared by clear(), which IndVarSimplify
and LSR both use before deleting instructions.
llvm-svn: 109478
2010-07-27 01:19:06 +00:00
Owen Anderson
761b8bf130
(Hopefully) One last test.
...
llvm-svn: 109473
2010-07-27 00:04:55 +00:00
Owen Anderson
0f5dcde4b0
Another test.
...
llvm-svn: 109472
2010-07-27 00:00:47 +00:00
Owen Anderson
79c830fd64
Another test.
...
llvm-svn: 109471
2010-07-26 23:58:46 +00:00
Jakob Stoklund Olesen
c698417e52
Add SplitEditor to SplitKit. This class will be used to edit live intervals and
...
rewrite instructions for live range splitting.
Still work in progress.
llvm-svn: 109469
2010-07-26 23:44:11 +00:00
Dan Gohman
c2af77f510
Fix a use-after-free.
...
llvm-svn: 109468
2010-07-26 23:40:24 +00:00
Bill Wendling
fa60b0ee51
Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value.
...
llvm-svn: 109462
2010-07-26 22:36:52 +00:00
Eli Friedman
f902befe8e
And a bit more non-ASCII stuff.
...
llvm-svn: 109458
2010-07-26 22:28:18 +00:00
Anton Korobeynikov
1e0d76bfd1
Drop some non-ascii stuff
...
llvm-svn: 109456
2010-07-26 22:23:07 +00:00
Bob Wilson
f23a06c2e4
Don't call __register_frame from the JIT on systems that use setjmp/longjmp
...
exception handling. Also fix an extra underscore typo in one instance of
"__ARM_EABI__". Radar 8236264.
llvm-svn: 109451
2010-07-26 21:58:00 +00:00
Evan Cheng
d4218b8793
On x86, f32 / f64 nodes share the same registers as 128-bit vector values.
...
llvm-svn: 109450
2010-07-26 21:50:05 +00:00
Evan Cheng
e6d6c5dd11
The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling.
...
llvm-svn: 109449
2010-07-26 21:49:07 +00:00
Anton Korobeynikov
b61a6f2742
Add a note
...
llvm-svn: 109448
2010-07-26 21:48:35 +00:00
Dan Gohman
9306a8ec1b
Add a comment.
...
llvm-svn: 109435
2010-07-26 21:05:37 +00:00
Bruno Cardoso Lopes
36c2ea6c7a
Temporary hack to let codegen assert or generate poor code in case
...
we are using AVX and no AVX version of the desired intruction is present,
this is better for incremental dev (without fallbacks it's easier to spot
what's missing). Not sure this is the best hack thought (we can also disable
all HasSSE* predicates by dinamically marking them 'false' if AVX is present)
llvm-svn: 109434
2010-07-26 21:01:18 +00:00
Owen Anderson
952e75fbd9
Testing some more.
...
llvm-svn: 109433
2010-07-26 20:51:45 +00:00
Owen Anderson
73b2f5d910
Test some more.
...
llvm-svn: 109431
2010-07-26 20:19:04 +00:00
Dan Gohman
14e297e534
Fix library build messages.
...
llvm-svn: 109430
2010-07-26 20:15:47 +00:00
Gabor Greif
ed79dcb1ab
re-commit r109220, the compile error has already been fixed
...
Simplifying use_iterators by dereferencing
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).
Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.
llvm-svn: 109425
2010-07-26 18:48:07 +00:00
Owen Anderson
aa7f66ba67
Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now.
...
llvm-svn: 109424
2010-07-26 18:48:03 +00:00
Anton Korobeynikov
6bcea068db
Currently EH lowering code expects typeinfo to be global only.
...
This assumption is not satisfied due to global mergeing.
Workaround the issue by temporary disablinge mergeing of const globals.
Also, ignore LLVM "special" globals. This fixes PR7716
llvm-svn: 109423
2010-07-26 18:45:39 +00:00
Owen Anderson
bb4c4b59a4
Fix a test with malformed IR. Not sure why this didn't fail before.
...
llvm-svn: 109422
2010-07-26 18:44:56 +00:00
Evan Cheng
23b05d1cf5
ARM fastisel isn't ready.
...
llvm-svn: 109421
2010-07-26 18:32:55 +00:00
Owen Anderson
6f054d7cea
One more test commit...
...
llvm-svn: 109420
2010-07-26 18:31:17 +00:00
Dan Gohman
cd83870faf
Fix SCEVExpander::visitAddRecExpr so that it remembers the induction variable
...
it inserted rather than using LoopInfo::getCanonicalInductionVariable to
rediscover it, since that doesn't work on non-canonical loops. This fixes
infinite recurrsion on such loops; PR7562.
llvm-svn: 109419
2010-07-26 18:28:14 +00:00
Dan Gohman
2810bacafb
Handle Values with no value in getCopyFromRegs.
...
llvm-svn: 109415
2010-07-26 18:15:41 +00:00
Owen Anderson
9dfbb84464
Hopefully the last test commit.
...
llvm-svn: 109414
2010-07-26 18:13:21 +00:00
Dan Gohman
0141c13b22
Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus
...
dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier
pass in StandardPasses.h to ensure that it gets scheduled at the right
time.
Declare that loop unrolling preserves ScalarEvolution, and shuffle some
getAnalysisUsages.
This eliminates one LoopSimplify and one LCCSA run in the standard
compile opts sequence.
llvm-svn: 109413
2010-07-26 18:11:16 +00:00
Dan Gohman
a7908ae369
Preserve ScalarEvolution in the loop unroller.
...
llvm-svn: 109412
2010-07-26 18:02:06 +00:00
Owen Anderson
e8ecb4acf6
Another test commit.
...
llvm-svn: 109411
2010-07-26 18:00:59 +00:00
Dan Gohman
b0961f2443
Avoid depending on LCSSA implicitly pulling in LoopSimplify.
...
llvm-svn: 109410
2010-07-26 18:00:43 +00:00
Owen Anderson
732a7e2661
Test commit for new post-commit hooks.
...
llvm-svn: 109409
2010-07-26 17:56:42 +00:00
Dan Gohman
accaca5604
Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock:
...
don't visit all blocks in the function, and don't iterate over the split blocks'
predecessor lists for each block visited.
Also, remove the special-case test for the entry block. Splitting the entry
block isn't common enough to make this worthwhile.
This fixes a major compile-time bottleneck which is exposed now that
LoopSimplify isn't being redundantly run both before and after
DominanceFrontier.
llvm-svn: 109408
2010-07-26 17:55:15 +00:00
Eric Christopher
62ac5ca22d
80-col.
...
llvm-svn: 109407
2010-07-26 17:53:07 +00:00
Dan Gohman
30005444fe
Avoid copying and recopying a std::set.
...
llvm-svn: 109405
2010-07-26 17:45:33 +00:00
Dan Gohman
2307c4bb76
Exit a search loop when the search goal is found.
...
llvm-svn: 109404
2010-07-26 17:41:45 +00:00
Dan Gohman
45af0ad182
Fix formatting.
...
llvm-svn: 109403
2010-07-26 17:39:33 +00:00
Dan Gohman
f9da3c3b88
A block dominates itself, by definition.
...
llvm-svn: 109402
2010-07-26 17:38:15 +00:00
Dan Gohman
65b257c9d2
Use DominatorTree::properlyDominates instead of dominates with an
...
explicit inequality check.
llvm-svn: 109401
2010-07-26 17:37:36 +00:00
Dan Gohman
31f73ef210
A block dominates itself, by definition.
...
llvm-svn: 109400
2010-07-26 17:35:32 +00:00
Dan Gohman
b3aa6c7110
Use DominatorTree::properlyDominates instead of dominates with an
...
explicit inequality check.
llvm-svn: 109398
2010-07-26 17:34:05 +00:00
Duncan Sands
136a6f0dbb
Pacify gcc-4.5 which wrongly thinks that RExcess (passed as the Excess parameter)
...
may be used uninitialized in the callers of HighRegPressure.
llvm-svn: 109393
2010-07-26 07:54:17 +00:00
Douglas Gregor
675b162512
Fix format-specifier warning
...
llvm-svn: 109391
2010-07-26 03:55:44 +00:00
Michael J. Spencer
c21293792e
MC: Fix whitespace error from last commit.
...
A Visual C++ extension that removes trailing new lines? Seriously?
llvm-svn: 109390
2010-07-26 03:01:28 +00:00
Michael J. Spencer
b5fc138547
MC: Add WinCOFFObjectWriter implementation.
...
Origonal Windows COFF implementation by Nathan Jedffords.
llvm-svn: 109389
2010-07-26 02:17:32 +00:00
Lang Hames
2e3f20b9aa
Factored out a bit of common code to mark VNInfos for deletion.
...
llvm-svn: 109388
2010-07-26 01:49:41 +00:00
Rafael Espindola
235457ca7f
Clone and restore the module being reduced in
...
ReduceMiscompilingFunctions::TestFuncs. This makes the test functional
(i.e., no side effects).
Before we would end up using dead functions if a pass decided to remove them
(inline for example) and we would also keep broken functions and conclude that
that a single function was enough to reproduce the bug.
llvm-svn: 109387
2010-07-26 00:07:51 +00:00
Benjamin Kramer
5aaf677a37
Reduce string trashing.
...
llvm-svn: 109386
2010-07-25 23:18:32 +00:00
Nick Lewycky
a3f7dcd069
Don't pass -export-dynamic to the linker on Cygwin and MinGW. These platforms
...
accept the flag and do nothing but warn about it, cleverly bypassing our
configure-based detection system. Patch by Takumi Nakamura!
llvm-svn: 109385
2010-07-25 22:33:04 +00:00
Evan Cheng
8ae3ecad2b
Add comments.
...
llvm-svn: 109383
2010-07-25 18:59:43 +00:00
Douglas Gregor
8f452bc291
Remove extraneous semicolon
...
llvm-svn: 109373
2010-07-25 17:34:42 +00:00
Douglas Gregor
8fcfe7aa51
Unbreak CMake build
...
llvm-svn: 109372
2010-07-25 17:10:14 +00:00
Bob Wilson
280ce9984e
Fix crashes when scheduling a CopyToReg node -- getMachineOpcode asserts on
...
those. Radar 8231572.
llvm-svn: 109367
2010-07-25 05:34:27 +00:00
Eli Friedman
6cf5141824
Revert r109361; it's impossible to write a call with an argument with an
...
invalid type.
llvm-svn: 109365
2010-07-24 23:06:59 +00:00
Rafael Espindola
74cc8b270f
Revert unintended white space change.
...
llvm-svn: 109364
2010-07-24 23:05:45 +00:00
Rafael Espindola
f8203a3a6d
Fix a trivial use after free.
...
llvm-svn: 109363
2010-07-24 23:02:11 +00:00
Eli Friedman
9d9e4a83b5
Minor simplification.
...
llvm-svn: 109362
2010-07-24 23:00:59 +00:00
Eli Friedman
261c211089
Make the ll parser check that arguments have valid types.
...
llvm-svn: 109361
2010-07-24 23:00:26 +00:00
Eli Friedman
5f6112450f
PR7704: A function is not allowed to return a function; make sure to enforce
...
this consistently.
llvm-svn: 109360
2010-07-24 22:58:04 +00:00
Anton Korobeynikov
19edda0323
Hook in GlobalMerge pass
...
llvm-svn: 109359
2010-07-24 21:52:08 +00:00
Nick Lewycky
7bc0443f2b
Revert this because we can't clone cyclic MDNodes which are creating during a
...
build of llvm-gcc.
llvm-svn: 109355
2010-07-24 20:54:02 +00:00
Anton Korobeynikov
3c8eb80d93
Add hook to insert late LLVM=>LLVM passes just before isel
...
llvm-svn: 109354
2010-07-24 20:48:54 +00:00
Nick Lewycky
14b69d59dd
Whether function-local or not, a MDNode may reference a Function in which case
...
it needs to be mapped to refer to the function in the new module, not the old
one. Fixes PR7700.
llvm-svn: 109353
2010-07-24 19:43:25 +00:00
Chris Lattner
6ca585fc41
add a new NullablePtr class which makes it more obvious in API
...
that a pointer can be null, forcing clients to think about it.
llvm-svn: 109348
2010-07-24 18:47:46 +00:00
Peter Collingbourne
b724226063
Document BUILD_EXAMPLES makefile variable
...
llvm-svn: 109346
2010-07-24 17:54:00 +00:00
Duncan Sands
3bc93c2f2f
Clarify that if a new value handle is added while dropping value handles
...
hanging off a value, then the dropping code will intentionally not drop
it too (since this is almost certainly a bug).
llvm-svn: 109337
2010-07-24 12:09:22 +00:00
Bob Wilson
56c006561c
Change ScheduleDAGInstrs::Defs and ::Uses to be variable-size vectors
...
instead of fixed size arrays, so that increasing FirstVirtualRegister to 16K
won't cause a compile time performance regression.
llvm-svn: 109330
2010-07-24 06:01:53 +00:00
Devang Patel
498877d055
Use current working directory when Dirname is empty. This only happens when absolute source file path is used on compiler command line.
...
llvm-svn: 109302
2010-07-24 00:53:22 +00:00
Evan Cheng
37b740c4bf
Add an ILP scheduler. This is a register pressure aware scheduler that's
...
appropriate for targets without detailed instruction iterineries.
The scheduler schedules for increased instruction level parallelism in
low register pressure situation; it schedules to reduce register pressure
when the register pressure becomes high.
On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2
by 16%.
llvm-svn: 109300
2010-07-24 00:39:05 +00:00
Bruno Cardoso Lopes
306a1f9721
Support x86 "eiz" and "riz" pseudo index registers in the assembler.
...
llvm-svn: 109295
2010-07-24 00:06:39 +00:00
Jim Grosbach
0acbcb1a60
Use the appropriate register class for an i32 when adding ARM::LR to the
...
function live in set. This will give us tGPR for Thumb1 and GPR otherwise,
so the copy will be spillable. rdar://8224931
llvm-svn: 109293
2010-07-23 23:50:35 +00:00
Jim Grosbach
ba4b1909ce
Remove too-strict assertion. We may want the vreg copy of the physical register
...
to be of a different register class. For example, in Thumb1 if the live-in is
a high register, we want the vreg to be a low register. rdar://8224931
llvm-svn: 109291
2010-07-23 23:48:02 +00:00
Matt Fleming
fbd7f65248
Consolidate the ELF section directive tests into a single file as
...
suggested by Chris Lattner.
llvm-svn: 109290
2010-07-23 23:40:41 +00:00
Owen Anderson
893483000d
Fix use-after-free error.
...
llvm-svn: 109288
2010-07-23 23:27:43 +00:00
Devang Patel
28499f76c9
Revert r109262.
...
llvm-svn: 109285
2010-07-23 23:04:41 +00:00
Dale Johannesen
c17dd5790b
Revert 109076. It is wrong and was causing regressions. Add some
...
comments explaining why it was wrong. 8225024.
Fix the real problem in 8213383: the code that splits very large
blocks when no other place to put constants can be found was not
considering the case that the block contained a Thumb tablejump.
llvm-svn: 109282
2010-07-23 22:50:23 +00:00
Evan Cheng
df907f4594
- Allow target to specify when is register pressure "too high". In most cases,
...
it's too late to start backing off aggressive latency scheduling when most
of the registers are in use so the threshold should be a bit tighter.
- Correctly handle live out's and extract_subreg etc.
- Enable register pressure aware scheduling by default for hybrid scheduler.
For ARM, this is almost always a win on # of instructions. It's runtime
neutral for most of the tests. But for some kernels with high register
pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by
54 and sped up by 20%.
llvm-svn: 109279
2010-07-23 22:39:59 +00:00
Bruno Cardoso Lopes
d65cd1d581
Remove trailing whitespace
...
llvm-svn: 109276
2010-07-23 22:15:26 +00:00
Dan Gohman
7038bd5c1a
Eliminate getCanonicalInductionVariableIncrement's last user and
...
eliminate it.
llvm-svn: 109270
2010-07-23 21:34:51 +00:00
Bruno Cardoso Lopes
6f38011196
Move AVX encoding tests to different files
...
llvm-svn: 109269
2010-07-23 21:25:26 +00:00
Dan Gohman
acafc61023
Simplify this code; it can use the regular CFG utlities rather than
...
the BlockTraits abstractions.
llvm-svn: 109268
2010-07-23 21:25:16 +00:00
Dan Gohman
5ae3102459
Micro-optimize SCEVComplexityCompare.
...
llvm-svn: 109267
2010-07-23 21:20:52 +00:00
Dan Gohman
992db006d0
Add a const qualifier.
...
llvm-svn: 109266
2010-07-23 21:18:55 +00:00
Dan Gohman
55e244698a
Use the proper type for shift counts. This fixes a bootstrap error.
...
llvm-svn: 109265
2010-07-23 21:08:12 +00:00
Devang Patel
3032354bbe
IF directory name is empty then try to extract one using absolute file name.
...
llvm-svn: 109262
2010-07-23 20:36:13 +00:00
Stuart Hastings
caf8e3a2db
Test case to insure template function declaration refers to correct filename. Radar 8063111.
...
llvm-svn: 109258
2010-07-23 20:15:49 +00:00
Bruno Cardoso Lopes
ea0e05a3ce
Add AVX version of CLMUL instructions
...
llvm-svn: 109248
2010-07-23 18:41:12 +00:00
Dan Gohman
0818684a70
DAGCombine (shl (anyext x, c)) to (anyext (shl x, c)) if the high bits
...
are not demanded. This often allows the anyext to be folded away.
llvm-svn: 109242
2010-07-23 18:03:30 +00:00
Dan Gohman
2e00e3b12d
Make SDNode::dump() print a newline at the end.
...
llvm-svn: 109234
2010-07-23 16:37:47 +00:00
Gabor Greif
4ad7271798
fix constness warnings
...
llvm-svn: 109224
2010-07-23 13:28:47 +00:00
Eric Christopher
17a8ebcccf
Revert r109102 for now as it's causing JIT miscompilations.
...
I'll try to track down why a bit later.
llvm-svn: 109223
2010-07-23 12:16:56 +00:00
Gabor Greif
a1e9c98302
do not (implicitly) dereference iterator many times, cache it instead
...
llvm-svn: 109222
2010-07-23 10:23:01 +00:00
Eric Christopher
849a8cf815
Revert 109220.
...
llvm-svn: 109221
2010-07-23 08:53:17 +00:00
Gabor Greif
1025f21ef3
Simplifying use_iterators by dereferencing
...
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).
Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.
llvm-svn: 109220
2010-07-23 08:36:07 +00:00
Mikhail Glushenkov
204fbaf5c2
StringRef'icate.
...
llvm-svn: 109217
2010-07-23 04:19:39 +00:00
Mikhail Glushenkov
dc0a05df55
Formatting.
...
llvm-svn: 109216
2010-07-23 04:19:34 +00:00
Mikhail Glushenkov
1e5d7c6e82
Get rid of exceptions in llvmc.
...
llvmc can be now compiled with llvm-gcc on Windows.
llvm-svn: 109215
2010-07-23 03:42:55 +00:00
Chris Lattner
c0a14c1622
give StringMap a new ctor which allows you to initialize it
...
with an existing allocator. The interesting use case of this
is that it allows "StringMap<whatever, BumpPtrAllocator&>" for
when you want to allocate out of a preexisting bump pointer
allocator owned by someone else.
llvm-svn: 109213
2010-07-23 03:29:59 +00:00
Chris Lattner
6ba9d4483f
modernize stringset interface
...
llvm-svn: 109212
2010-07-23 03:21:53 +00:00
Bruno Cardoso Lopes
d618c8ac64
Declare CLMUL as a subtarget feature
...
llvm-svn: 109207
2010-07-23 01:22:45 +00:00
Bruno Cardoso Lopes
09dc24beac
Add x86 CLMUL (Carry-less multiplication) cpu feature
...
llvm-svn: 109206
2010-07-23 01:17:51 +00:00
Eric Christopher
faf5c76114
80-col.
...
llvm-svn: 109205
2010-07-23 01:05:59 +00:00
Bruno Cardoso Lopes
acd9230b1b
Add complete assembler support for FMA3 instructions, with descriptions and encodings taken from the AVX manual
...
llvm-svn: 109204
2010-07-23 00:54:35 +00:00
Dale Johannesen
f2d75670b7
The only supported calling convention for X86-64 uses
...
SSE, so we can't return floating point values if this
is disabled. Detect this error for clang.
With SSE1 only, f64 is a problem; it can be done, but
neither llvm-gcc nor clang has ever generated correct
code for it. Since nobody noticed this I think it's
OK to treat it as an error for now.
This also handles SSE-sized vectors of floating point.
8207686, 8204109.
llvm-svn: 109201
2010-07-23 00:30:35 +00:00
Bruno Cardoso Lopes
e29e389678
Fix some AVX instructions which didnt had HasAVX prefix. And also a problem with PINSRW, which was totally wrong because of a typo I introduced previously
...
llvm-svn: 109198
2010-07-23 00:14:54 +00:00
Bob Wilson
c3b40da379
Add an explicit -sdk option to xcrun command.
...
llvm-svn: 109196
2010-07-22 23:33:00 +00:00
Eric Christopher
c2f81007c0
Warnings patrol.
...
llvm-svn: 109174
2010-07-22 21:51:30 +00:00
Chris Lattner
eb4e3dce9b
missed a use of SizeRequired.
...
llvm-svn: 109172
2010-07-22 21:34:55 +00:00
Chris Lattner
749ca32da1
eliminate the TargetInstrInfo::GetInstSizeInBytes hook.
...
ARM/PPC/MSP430-specific code (which are the only targets that
implement the hook) can directly reference their target-specific
instrinfo classes.
llvm-svn: 109171
2010-07-22 21:27:00 +00:00
Chris Lattner
aba8ee38c2
remove the dwarf sizing stuff which is now dead, it was
...
"yet another" copy of the dwarf EH emission code that was
copied, pasted and slightly hacked up.
llvm-svn: 109169
2010-07-22 21:20:39 +00:00
Bruno Cardoso Lopes
0710c74f29
Add remaining AVX instructions (most of them dealing with GR64 destinations. This complete the assembler support for the general AVX ISA. But we still miss instructions from FMA3 and CLMUL specific feature flags, which are now the next step
...
llvm-svn: 109168
2010-07-22 21:18:49 +00:00
Chris Lattner
8f3adc9057
remove the JIT "NeedsExactSize" feature and supporting logic.
...
llvm-svn: 109167
2010-07-22 21:17:55 +00:00
Chris Lattner
dab6888bb1
switch a private implementation of GetFunctionSizeInBytes.
...
This is probably not the best way to implement "Force LR to
be spilled if the Thumb function size is > 2048." do this,
it should use the branch shortening infrastructure, but I'm
just preserving functionality here.
llvm-svn: 109165
2010-07-22 21:14:33 +00:00
Eric Christopher
e3befc7f4a
Regenerate.
...
llvm-svn: 109164
2010-07-22 21:13:48 +00:00
Eric Christopher
c7289b6622
Try to work around the relative install-sh path problem.
...
Patch from Eli.
llvm-svn: 109163
2010-07-22 21:13:40 +00:00
Chris Lattner
b3f608bbba
X86MCInstLower now depends on AsmPrinter being around.
...
llvm-svn: 109154
2010-07-22 21:10:04 +00:00
Chris Lattner
083be4d384
instead of migrating it to the MC instruction encoder, just
...
rip out the implementation of X86InstrInfo::GetInstSizeInBytes.
The code being ripped out just implemented a copy and hacked up
version of the (old) instruction encoder, and is buggy and
terrible in other ways. Since "GetInstSizeInBytes" is really
only there to support the JIT's "NeedsExactSize" hook (which
noone is using), just rip out the code. I will rip out the
NeedsExactSize hook next.
This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter
llvm-svn: 109149
2010-07-22 21:05:13 +00:00
Devang Patel
5fa3813329
Speculatively revert 109117
...
llvm-svn: 109132
2010-07-22 18:44:00 +00:00
Xerxes Ranby
ff66cd43c4
ARMv4 JIT forgets to set the lr register when making a indirect function call. Fixes PR7608
...
llvm-svn: 109125
2010-07-22 17:28:34 +00:00
Gabor Greif
59f9970ba5
keep in 80 cols
...
llvm-svn: 109122
2010-07-22 17:18:03 +00:00
Devang Patel
fac440cfb6
Map MDNode correctly.
...
A non function local MDNode can have an operand which is cloned by MapValue().
llvm-svn: 109117
2010-07-22 16:35:00 +00:00
Gabor Greif
fd23a97d9c
add dyn_cast_or_null tests, exclude invalid dyn_cast test
...
llvm-svn: 109111
2010-07-22 15:37:20 +00:00
Gabor Greif
78595811b4
tidy up
...
llvm-svn: 109110
2010-07-22 15:28:30 +00:00
Gabor Greif
b9e69778a4
add dyn_cast tests and beef up others a bit
...
llvm-svn: 109109
2010-07-22 15:24:48 +00:00
Gabor Greif
4e2e9f4517
fit in 80 columns
...
llvm-svn: 109108
2010-07-22 14:13:14 +00:00
Gabor Greif
1a2da423c9
use cascading operator-> feature
...
llvm-svn: 109104
2010-07-22 13:49:27 +00:00
Gabor Greif
dde79d8f1a
mass elimination of reliance on automatic iterator dereferencing
...
llvm-svn: 109103
2010-07-22 13:36:47 +00:00
Duncan Sands
0525393a79
Increase the max physreg size. Patch by Pekka Jääskeläinen.
...
llvm-svn: 109102
2010-07-22 13:10:14 +00:00
Gabor Greif
84012a93ef
simplify
...
llvm-svn: 109101
2010-07-22 13:07:39 +00:00
Gabor Greif
b8686360a1
do not access arguments via low-level interface, do not multiply dereference use_iterators
...
llvm-svn: 109100
2010-07-22 13:04:32 +00:00
Gabor Greif
10bb1f5462
pass dereferenced iterator to dyn_cast
...
llvm-svn: 109099
2010-07-22 11:48:35 +00:00
Gabor Greif
36f25dfd33
pass dereferenced iterator to dyn_cast
...
llvm-svn: 109098
2010-07-22 11:43:44 +00:00
Gabor Greif
d9f48ecb2e
use -> instead of (*).
...
llvm-svn: 109094
2010-07-22 11:12:32 +00:00
Gabor Greif
07c8ad54da
cache dereferenced iterator
...
llvm-svn: 109093
2010-07-22 11:07:46 +00:00
Gabor Greif
3e44ea1917
undo 80 column trespassing I caused
...
llvm-svn: 109092
2010-07-22 10:37:47 +00:00
Chandler Carruth
a1d7516cb7
Mark an assert-only variable as used.
...
llvm-svn: 109091
2010-07-22 08:02:25 +00:00
Chandler Carruth
2f8db38bb3
Fix the generated file name for CMake.
...
llvm-svn: 109090
2010-07-22 08:00:52 +00:00
Tobias Grosser
336734aca6
Add new RegionInfo pass.
...
The RegionInfo pass detects single entry single exit regions in a function,
where a region is defined as any subgraph that is connected to the remaining
graph at only two spots.
Furthermore an hierarchical region tree is built.
Use it by calling "opt -regions analyze" or "opt -view-regions".
llvm-svn: 109089
2010-07-22 07:46:31 +00:00
Chandler Carruth
3180f9f55f
Attempt to fix linking issues with CMake. Please review other CMake users,
...
especially on other platforms. Is there a better way to fix this.
llvm-svn: 109084
2010-07-22 06:27:45 +00:00
Evan Cheng
bf32e54bac
Re-apply r109079 with fix.
...
llvm-svn: 109083
2010-07-22 06:24:48 +00:00
Owen Anderson
6c55cccf87
Revert r109079, which broke a lot of CodeGen tests.
...
llvm-svn: 109082
2010-07-22 06:01:28 +00:00
Owen Anderson
14646cc074
Update CMake files.
...
llvm-svn: 109081
2010-07-22 06:00:01 +00:00
Reid Kleckner
d85e3c5a86
Initial modifications to MCAssembler and TargetMachine for the MCJIT.
...
Patch by Olivier Meurant!
llvm-svn: 109080
2010-07-22 05:58:53 +00:00
Evan Cheng
bd81bff672
Initialize RegLimit only when register pressure is being tracked.
...
llvm-svn: 109079
2010-07-22 05:18:41 +00:00
Eric Christopher
9a77382685
Custom lower the memory barrier instructions and add support
...
for lowering without sse2. Add a couple of new testcases.
Fixes a few libgomp tests and latent bugs. Remove a few todos.
llvm-svn: 109078
2010-07-22 02:48:34 +00:00
Evan Cheng
3fabe07d4c
Fix constant island pass's handling of tBR_JTr. The offset of the instruction does not have to be 4-byte aligned. Rather, it's the offset + 2 that must be aligned since the instruction expands into:
...
mov pc, r1
.align 2
LJTI0_0_0:
.long LBB0_14
This fixes rdar://8213383. No test case since it's not possible to come up with a suitable small one.
llvm-svn: 109076
2010-07-22 02:09:47 +00:00
Lang Hames
1cb63afb44
If 'other' was empty 'overlapsFrom(other, other.begin());' will segfault. This avoids that.
...
llvm-svn: 109075
2010-07-22 02:05:10 +00:00
Daniel Dunbar
29dc45b650
lit: Add some example tests for previous commit.
...
llvm-svn: 109071
2010-07-22 00:40:19 +00:00
Eric Christopher
a4c435f1fa
80-columns.
...
llvm-svn: 109070
2010-07-22 00:26:08 +00:00