Bill Wendling
13aada6fc4
Forgot to check that debug information is supported.
...
llvm-svn: 65034
2009-02-19 08:06:12 +00:00
Bill Wendling
0f4c581c4a
Put code that generates debug labels into TableGen so that it can be used by
...
everyone.
llvm-svn: 64978
2009-02-18 23:12:06 +00:00
Dan Gohman
8cab4c44bb
Add explicit keywords.
...
llvm-svn: 64915
2009-02-18 16:37:45 +00:00
Cedric Venet
d1e179d992
Unbreak the build on win32.
...
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
2009-02-14 16:06:42 +00:00
Duncan Sands
73247d2edc
Generalize some alias analysis logic from atomic
...
intrinsics to any IntrWriteArgMem intrinsics.
llvm-svn: 64551
2009-02-14 10:56:35 +00:00
Julien Lerouge
cbc2491deb
Fix MingW build: define GTEST_OS_WINDOWS if OS is MingW, but disable
...
exceptions.
llvm-svn: 64367
2009-02-12 08:02:35 +00:00
Bill Wendling
e5640dd8ad
Don't try to strip a file we just moved.
...
llvm-svn: 64263
2009-02-11 00:14:53 +00:00
Bill Wendling
6e91f6119a
Strip the LTO dylib.
...
llvm-svn: 64119
2009-02-09 06:42:40 +00:00
Bill Wendling
194d09151a
Small fix for the 'strip' command. Do a list of .so files.
...
llvm-svn: 64112
2009-02-09 04:01:11 +00:00
Evan Cheng
b9946d9841
Eliminate a 'control reaches end of non-void function' warning.
...
llvm-svn: 64111
2009-02-09 03:07:24 +00:00
Bill Wendling
f2116d7450
Don't run 'strip' on files that aren't there.
...
llvm-svn: 64108
2009-02-09 02:18:35 +00:00
Bill Wendling
783b851b76
Remove warnings about not being able to delete something. Don't run lipo on gccas, gccld, and llvm-config scripts.
...
llvm-svn: 64107
2009-02-09 02:13:33 +00:00
Evan Cheng
b87980a042
Revert 64023. make prefers GNUmakefile over makefile.
...
llvm-svn: 64024
2009-02-07 19:38:46 +00:00
Evan Cheng
b443e95b32
Move Apple style build makefiles to the top level. Just like llvmgcc42.
...
llvm-svn: 64023
2009-02-07 19:05:24 +00:00
Dale Johannesen
9f3f72f144
Get rid of one more non-DebugLoc getNode and
...
its corresponding getTargetNode. Lots of
caller changes.
llvm-svn: 63904
2009-02-06 01:31:28 +00:00
Dale Johannesen
f80493bbfd
Remove a non-DebugLoc version of getNode.
...
llvm-svn: 63889
2009-02-05 22:07:54 +00:00
Mike Stump
354d3de098
FIx spelling.
...
llvm-svn: 63883
2009-02-05 20:49:49 +00:00
Mike Stump
67f5ceaa82
Probe for flags before using them to try to help compiling with
...
compilers that don't support those flags. This hopefully will help
gcc 3.X compile this code. http://llvm.org/PR3487
llvm-svn: 63882
2009-02-05 20:45:27 +00:00
Dale Johannesen
b842d529a3
Reapply 63765. Patches for clang and llvm-gcc to follow.
...
llvm-svn: 63812
2009-02-05 01:49:45 +00:00
Dale Johannesen
f08a47bb70
Remove non-DebugLoc forms of CopyToReg and CopyFromReg.
...
Adjust callers.
llvm-svn: 63789
2009-02-04 23:02:30 +00:00
Dale Johannesen
ae616c2c61
Reverting 63765. This broke the build of both clang
...
and llvm-gcc.
llvm-svn: 63786
2009-02-04 22:47:25 +00:00
Nate Begeman
6ae3aa83d0
New feature: add support for target intrinsics being defined in the
...
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.
llvm-svn: 63765
2009-02-04 19:47:21 +00:00
Duncan Sands
3ed768868d
Fix PR3453 and probably a bunch of other potential
...
crashes or wrong code with codegen of large integers:
eliminate the legacy getIntegerVTBitMask and
getIntegerVTSignBit methods, which returned their
value as a uint64_t, so couldn't handle huge types.
llvm-svn: 63494
2009-02-01 18:06:53 +00:00
Bill Wendling
33dddf3235
Explain why this is here.
...
llvm-svn: 63342
2009-01-29 23:19:43 +00:00
Bill Wendling
50338007b9
- Add DebugLoc to getTargetNode().
...
- Modify TableGen to add the DebugLoc when calling getTargetNode.
(The light-weight wrappers are only temporary. The non-DebugLoc version will be
removed once the whole debug info stuff is finished with.)
llvm-svn: 63273
2009-01-29 05:27:31 +00:00
Dan Gohman
84f0165273
Move the code that starts printing the Select_* functions
...
after the code that sorts the patterns. This doesn't
affect the output, but it makes the code a little easier
to follow.
llvm-svn: 63265
2009-01-29 01:37:18 +00:00
Mikhail Glushenkov
02b47b5e7a
Typo.
...
llvm-svn: 63174
2009-01-28 03:47:58 +00:00
Mikhail Glushenkov
2115d09a10
Add three new option properties.
...
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.
llvm-svn: 63172
2009-01-28 03:47:20 +00:00
Evan Cheng
4a0bf66eb8
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
...
llvm-svn: 62762
2009-01-22 09:10:11 +00:00
Chris Lattner
9fc809e980
Make tblgen more portable, allowing it to build with ICC.
...
Patch by Robert Zeh!
llvm-svn: 62750
2009-01-22 05:10:16 +00:00
Dan Gohman
d776b6e51d
Fix a missing word.
...
llvm-svn: 62720
2009-01-21 21:54:44 +00:00
Dan Gohman
01d7dd8607
Versions of VIM included with Intrepid and Leopard at least appear
...
to handle symlinks just fine, so reword the instructions in the
README accordingly.
llvm-svn: 62719
2009-01-21 21:52:42 +00:00
Dan Gohman
3155533003
Enable syntax highlighting of LLVM and tablegen files by default,
...
so that users don't have to copy text from the README to get this.
llvm-svn: 62718
2009-01-21 21:47:51 +00:00
Dan Gohman
455be5a0a0
Only set cindent for C and C++ source files.
...
llvm-svn: 62717
2009-01-21 21:30:25 +00:00
Mikhail Glushenkov
fbc89cecad
Change the hook API back to prevent memory leaks.
...
llvm-svn: 62686
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
bf9716e15d
Allow hooks with arguments.
...
llvm-svn: 62685
2009-01-21 13:04:00 +00:00
Dan Gohman
3289983d69
Avoid triggering an assertion failure when an instruction pattern
...
is a leaf node. Patch by Brandner!
llvm-svn: 62361
2009-01-16 21:30:55 +00:00
Dan Gohman
3e35fe8968
Add support for instructions with multiple ComplexPatterns, by
...
adding more information to the temporary variables names so that
they don't conflict.
llvm-svn: 62296
2009-01-16 02:05:52 +00:00
Duncan Sands
dc020f9c3c
Rename getABITypeSize to getTypePaddedSize, as
...
suggested by Chris.
llvm-svn: 62099
2009-01-12 20:38:59 +00:00
Chris Lattner
2089cd09ba
make tblgen autogenerate the nocapture intrinsics for
...
llvm.memcpy/memset/memmove. This allows removal of some
hackish code from basicaa.
llvm-svn: 62071
2009-01-12 02:41:37 +00:00
Chris Lattner
9d0a8770bd
add scaffolding to emit argument attributes. No functionality
...
change.
llvm-svn: 62067
2009-01-12 01:27:55 +00:00
Chris Lattner
49b7ee1b50
make tblgen emit the entire Intrinsic::getAttributes method,
...
not a random piece of it. No functionality change.
llvm-svn: 62066
2009-01-12 01:18:58 +00:00
Chris Lattner
9a3113aeb8
add nocapture attribute to llvm.mem* intrinsics and have tblgen
...
parse them. tblgen doesn't yet do anything with this info though.
llvm-svn: 62065
2009-01-12 01:12:03 +00:00
Misha Brukman
b302377dc3
This has been replaced by llvm/utils/lint/cpp_lint.py, which is more
...
comprehensive and can support more complex style analysis.
llvm-svn: 62002
2009-01-09 19:46:41 +00:00
Chris Lattner
4f6a38e68c
remove some exclusions that don't exist anymore.
...
llvm-svn: 61932
2009-01-08 19:02:03 +00:00
Misha Brukman
93bd1ca55e
Use VIM's built-in shorthand for whitespace in regex.
...
llvm-svn: 61906
2009-01-08 02:17:30 +00:00
Misha Brukman
687501fdd4
Be sure to ignore the end-of-line character when considering trailing
...
whitespace.
llvm-svn: 61905
2009-01-08 02:16:13 +00:00
Bob Wilson
f76486ac8a
Improve support for type-generic vector intrinsics by teaching TableGen how
...
to handle LLVMMatchType intrinsic parameters, and by adding new subclasses
of LLVMMatchType to match vector types with integral elements that are
either twice as wide or half as wide as the elements of the matched type.
llvm-svn: 61834
2009-01-07 00:09:01 +00:00
Dan Gohman
c26da71654
Fix a thinko in the grammar for thread_local variables.
...
llvm-svn: 61767
2009-01-05 23:03:03 +00:00
Dan Gohman
49c42d5f57
Delete an unused variable and simplify the code.
...
llvm-svn: 61732
2009-01-05 19:31:28 +00:00
Bob Wilson
c9e772efc2
Handle iAny and fAny types in TreePatternNode::UpdateNodeType.
...
llvm-svn: 61713
2009-01-05 17:52:54 +00:00
Dan Gohman
30517ecfdc
Add the keyword 'default'.
...
llvm-svn: 61710
2009-01-05 17:44:11 +00:00
Misha Brukman
d7fc45a091
Renamed Google Test license file from COPYING to LICENSE.TXT to match LLVM
...
conventions, per John Criswell.
llvm-svn: 61708
2009-01-05 17:42:15 +00:00
Dan Gohman
1d59d7843c
A few more polygen grammar updates.
...
- After GlobalAssign, emit addrspace before global/constant, to follow
the new syntax.
- Eliminate "type void", which is now invalid.
- Fix invalid liblists like [, "foo"].
- Tweak whitespace in a few places.
llvm-svn: 61706
2009-01-05 17:29:42 +00:00
Bob Wilson
1b97f3fcea
Fix spelling in some comments.
...
llvm-svn: 61702
2009-01-05 17:23:09 +00:00
Dan Gohman
2c4353d04b
gc is not an obsolete keyword.
...
llvm-svn: 61670
2009-01-05 03:22:02 +00:00
Dan Gohman
7f5ce10172
Update polygen grammar for recent language changes.
...
llvm-svn: 61669
2009-01-05 03:21:23 +00:00
Dan Gohman
634a3bd68d
The .llx suffix is obsolete.
...
llvm-svn: 61647
2009-01-04 23:10:00 +00:00
Dan Gohman
29ad9bf5c3
Update VIM LLVM IR syntax highlighting.
...
- Add several new keywords
- Clean up some obsolete keywords
- Improve the patterns for constants.
- Add syntax-highlighting for dejagnu test command comments
llvm-svn: 61646
2009-01-04 23:09:38 +00:00
Dan Gohman
be631a3cd1
Set a few more vimrc indentation options.
...
llvm-svn: 61628
2009-01-04 18:59:55 +00:00
Dan Gohman
2dca828474
Use softtabstop instead of redefining tabstop.
...
llvm-svn: 61618
2009-01-04 00:05:43 +00:00
Dan Gohman
e4159704d9
Switch the vimrc file from smartindent to cindent, which is
...
smarter about C-ish syntax, and supports the cinoptions
variable. Set cinoptions to suppress the extra indentation
for switch case labels.
llvm-svn: 61617
2009-01-04 00:03:54 +00:00
Misha Brukman
a250160ec7
VerifyLineLength() actually takes a max length parameter.
...
llvm-svn: 61593
2009-01-02 21:24:29 +00:00
Misha Brukman
9d7b49bfd1
Added some basic lint tools for C++ and generic lint tool applicable to all
...
types of files (TableGen, LLVM assembly, HTML files, etc.)
llvm-svn: 61592
2009-01-02 21:15:30 +00:00
Misha Brukman
cc211514c9
Deleted trailing whitespace; no functional changes.
...
llvm-svn: 61583
2009-01-02 16:28:18 +00:00
Misha Brukman
ac7b456c93
vimrc
...
* Fixed cursors in terminal by setting nocompatible (sorry, vi users)
* Enable syntax highlighting so that this file can stand on its own
* Highlight trailing whitespace
* Fixed commands to delete trailing whitespaces and convert tabs to spaces
llvm.vim and tablegen.vim
* Removed trailing whitespace, as it's now very visible
llvm-svn: 61582
2009-01-02 16:26:14 +00:00
Misha Brukman
80ba6b7732
We also removed gtest-all.cc from the distribution tarball.
...
llvm-svn: 61581
2009-01-02 15:28:00 +00:00
Misha Brukman
bcf15388ab
Original patch by Talin.
...
* Added the first LLVM unittest -- DenseMap.
* Updated mkpatch utility to include llvm/unittests dir
* Added top-level target "unittests" to run all unittests
llvm-svn: 61541
2009-01-01 02:24:48 +00:00
Misha Brukman
22df200727
* Removed gtest-all.cc; .cc files including other .cc files is weird
...
* Removed gtest_main.cc: we have our own main() elsewhere
* Simplified the Makefile as we don't need SOURCES
* Moved the internal header to gtest/internal/
* Simplified the Makefile to remove -I param to CPP.Flags
* Updated README.LLVM with all the steps I took to massage GTest to
work in LLVM so far
llvm-svn: 61540
2009-01-01 02:05:43 +00:00
Misha Brukman
922e34993a
Moved Google Test code up one directory so that we can use a standard LLVM
...
Makefile with it, without resorting to the use of VPATH.
Also added Makefiles at every level of the directory tree to properly recurse
to Google Test and build it as a library (original Makefiles by Talin).
llvm-svn: 61539
2009-01-01 01:29:44 +00:00
Misha Brukman
c89aba332f
Import of Google Test 1.2.1, with the non-essential bits removed.
...
Added a README.LLVM file to indicate which files and directories
were removed from the original source tarball.
llvm-svn: 61526
2008-12-31 17:34:06 +00:00
Dan Gohman
f1fb65c747
Use dyn_cast intead of isa + cast in the generated DAGISel code. This
...
reduces the amount of code slightly when assertions are enabled.
llvm-svn: 61249
2008-12-19 18:13:39 +00:00
Mon P Wang
a501640ffa
Added support for vector widening.
...
llvm-svn: 61209
2008-12-18 20:03:17 +00:00
Mikhail Glushenkov
cf029824e1
Fix typo in error message.
...
llvm-svn: 61191
2008-12-18 04:06:58 +00:00
Mikhail Glushenkov
5932d8c986
Some enhancements for the 'case' expression.
...
Add (error) and (empty).
llvm-svn: 61117
2008-12-17 02:47:01 +00:00
Bill Wendling
160a416fc0
Change so that buildit won't need a parent directory with only the build scripts in them.
...
llvm-svn: 61061
2008-12-16 00:42:25 +00:00
Mikhail Glushenkov
e30a2820f6
Put Edge* classes into anonymous namespace.
...
Prevents conflicts between plugins.
llvm-svn: 60871
2008-12-11 10:34:18 +00:00
Mikhail Glushenkov
7f1bef5a55
Make 'extern' an option property.
...
Makes (forward) work better.
llvm-svn: 60667
2008-12-07 16:47:12 +00:00
Mikhail Glushenkov
4cc945da6e
Better error message.
...
llvm-svn: 60664
2008-12-07 16:45:12 +00:00
Mikhail Glushenkov
395cb25ac7
Re-apply Cedric's changes.
...
Use B instead of Beg (for consistency), but NodeA and NodeB instead of A
and B.
llvm-svn: 60663
2008-12-07 16:44:47 +00:00
Mikhail Glushenkov
0d88271490
Try to guess when the auto-generated cl::Sink option should be marked 'extern'.
...
This would be much easier to do if the CommandLine library didn't use
global state. Global state is evil.
llvm-svn: 60659
2008-12-07 16:42:47 +00:00
Mikhail Glushenkov
35a46f808b
Add a (progn)-like construct for (actions). Implemented as a DAG list.
...
llvm-svn: 60658
2008-12-07 16:42:22 +00:00
Mikhail Glushenkov
85467c71d2
Use (actions) instead of option properties, support external options.
...
Also includes a major refactoring. See documentation for more
information.
llvm-svn: 60656
2008-12-07 16:41:11 +00:00
Cedric Venet
af333378c9
The use of the construct:
...
for(Type1 B = ...;;) { Type2 B ; ... }
is bad: code is hard to read and VS VS don't like it (it ignore the second declaration of B).
This patch fix the problem in tablegen. Please don't write code like this.
llvm-svn: 60590
2008-12-05 13:37:30 +00:00
Dan Gohman
69cc2cbbff
Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.
...
llvm-svn: 60487
2008-12-03 18:15:48 +00:00
Dan Gohman
cc78cdf275
Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86's
...
foldMemoryOperand how to "fold" them, by converting them into constant-pool
loads. When they aren't folded, they use xorps/cmpeqd, but for example when
register pressure is high, they may now be folded as memory operands, which
reduces register pressure.
Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will
remat it instead of copying zeros around (V_SETALLONES was already marked).
llvm-svn: 60461
2008-12-03 05:21:24 +00:00
Dan Gohman
ae3ba45eb2
Add a sanity-check to tablegen to catch the case where isSimpleLoad
...
is set but mayLoad is not set. Fix all the problems this turned up.
Change code to not use isSimpleLoad instead of mayLoad unless it
really wants isSimpleLoad.
llvm-svn: 60459
2008-12-03 02:30:17 +00:00
Mikhail Glushenkov
cc2d0b2c4c
Support multiple compilation graph definitions. Not terribly useful, but makes the code more generic.
...
llvm-svn: 60199
2008-11-28 00:13:47 +00:00
Mikhail Glushenkov
3bb3da6f4c
Add 'hidden' and 'really_hidden' option properties.
...
llvm-svn: 60198
2008-11-28 00:13:25 +00:00
Evan Cheng
83bdb38965
On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size.
...
e.g.
movl 4(%esp), %eax
addl $4, %eax
is 2 bytes shorter than
movl $4, %eax
addl 4(%esp), %eax
llvm-svn: 60139
2008-11-27 00:49:46 +00:00
Mikhail Glushenkov
3ac10202c0
Small fix: the error message was incorrect in some cases.
...
llvm-svn: 60099
2008-11-26 10:55:45 +00:00
Bill Wendling
8d5b57b354
Copy the tblgen utility.
...
llvm-svn: 59681
2008-11-20 00:11:57 +00:00
Mikhail Glushenkov
20313c954e
Support dependencies between plugins by priority-sorting.
...
llvm-svn: 59449
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov
7549d568d5
Filter ToolPropertiesList to exclude all Tools not mentioned in the compilation graph.
...
llvm-svn: 59448
2008-11-17 17:29:42 +00:00
Mikhail Glushenkov
faae122e07
Add a layer of indirection to make plugins more flexible.
...
Use strings instead of TableGen defs in the compilation graph
definition. Makes it easier for the plugins to modify an existing graph.
llvm-svn: 59447
2008-11-17 17:29:18 +00:00
Bill Wendling
c35325c698
Fix to record comparator to make it work for return values > 1.
...
llvm-svn: 59242
2008-11-13 12:03:00 +00:00
Bill Wendling
3d2667c8f3
Put comma in correct place for call to StructType::get
...
llvm-svn: 59241
2008-11-13 10:18:35 +00:00
Bill Wendling
9182147f17
Modify the intrinsics pattern to separate out the "return" types from the
...
"parameter" types. An intrinsic can now return a multiple return values like
this:
def add_with_overflow : Intrinsic<[llvm_i32_ty, llvm_i1_ty],
[LLVMMatchType<0>, LLVMMatchType<0>]>;
llvm-svn: 59237
2008-11-13 09:08:33 +00:00
Oscar Fuentes
38d6c9a817
Tell GenLibDeps.pl to inspect .so and .dylib shared files.
...
llvm-svn: 59158
2008-11-12 20:39:06 +00:00
Mikhail Glushenkov
a2909684b6
Check the return value of std::getenv.
...
When constructing std::strings from C strings, we should check the input
value to be not NULL so that the std::string constructor does not
segfault.
Fixes #3047 .
llvm-svn: 59131
2008-11-12 12:41:18 +00:00