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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63765 91177308-0d34-0410-b5e6-96231b3b80d8
essential problem was that the DAG can contain
random unused nodes which were never analyzed.
When remapping a value of a node being processed,
such a node may become used and need to be analyzed;
however due to operands being transformed during
analysis the node may morph into a different one.
Users of the morphing node need to be updated, and
this wasn't happening. While there I added a bunch
of documentation and sanity checks, so I (or some
other poor soul) won't have to scratch their head
over this stuff so long trying to remember how it
was all supposed to work next time some obscure
problem pops up! The extra sanity checking exposed
a few places where invariants weren't being preserved,
so those are fixed too. Since some of the sanity
checking is expensive, I added a flag to turn it
on. It is also turned on when building with
ENABLE_EXPENSIVE_CHECKS=1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60797 91177308-0d34-0410-b5e6-96231b3b80d8
use a SUB instruction instead of an ADD, because -128 can be
encoded in an 8-bit signed immediate field, while +128 can't be.
This avoids the need for a 32-bit immediate field in this case.
A similar optimization applies to 64-bit adds with 0x80000000,
with the 32-bit signed immediate field.
To support this, teach tablegen how to handle 64-bit constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57663 91177308-0d34-0410-b5e6-96231b3b80d8
- It turns out this is enough to completely break dependency file
(.d) usage (at least for my gmake).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57030 91177308-0d34-0410-b5e6-96231b3b80d8
- Fixes bug in dependency inclusions where make with unspecified
target wouldn't include dependency files, eek!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57026 91177308-0d34-0410-b5e6-96231b3b80d8
runnable on the build machine.
There are a few bits that need built for the build environment (TableGen).
This patch builds those bits, and the associated libraries, for the build
environment as well as the (usual) host environment.
Thanks to Eric C. and Devang P. for pre-commit review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56975 91177308-0d34-0410-b5e6-96231b3b80d8
the comments in FastISelEmitter.cpp for details on what this is.
This is currently experimental and unusable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54751 91177308-0d34-0410-b5e6-96231b3b80d8
Don't include system headers in the .d files.
Don't use $@ in the makefile rules, as there are two possible targets it could resolve to: use the one that we need explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45473 91177308-0d34-0410-b5e6-96231b3b80d8
put into the CPP.Defines variable. Seems the convention was corrupted with
various changes made. It is important to get command line parameters into the
right variable because things like llvm-config and sub-makefiles depend on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38486 91177308-0d34-0410-b5e6-96231b3b80d8
--enable-expensive-checks allows the developer to enable runtime
checking that can greatly increase compile time. Currently it only
turns on _GLIBCXX_DEBUG. Other expensive debugging checks added later
should be controlled by this configure option.
This patch also updates llvm-config with a --cppflags option to inform
llvm-gcc how to build itself so that it is compatible with an llvm that
was built with _GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37777 91177308-0d34-0410-b5e6-96231b3b80d8
Make the sys::Path::getFileStatus function more efficient by having it
return a pointer to the FileStatus structure rather than copy it. Adjust
uses of the function accordingly. Also, fix some memory issues in sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35476 91177308-0d34-0410-b5e6-96231b3b80d8
"clean" target item. This gets around having the built sources disappear
when only one build mode wants to be cleaned. With the "clean-all" target,
all build modes are cleaned so it also makes sense to clean out the built
sources at that point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34003 91177308-0d34-0410-b5e6-96231b3b80d8
a directory's Makefile will prevent the build products from that directory
from being installed. This is useful for tools and libraries that are
only useful as part of the build process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33968 91177308-0d34-0410-b5e6-96231b3b80d8
libraries linked with. This permits a project to still use USEDLIBS to
specify its own libraries in conjunction with LINK_COMPONENTS. llvm-stacker
needs this after libLLVMTransforms.a went away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33886 91177308-0d34-0410-b5e6-96231b3b80d8
use of the REJECT macro but we don't use it. This just hushes up a warning
in the presence of -Wno-unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32843 91177308-0d34-0410-b5e6-96231b3b80d8
depend on the compiler. This works around problems in the Stacker runtime
when the CFE changes in such a way that the assembly file needs to be
updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32773 91177308-0d34-0410-b5e6-96231b3b80d8
premature, these libraries will be going away for the 2.0 release. Other
arrangements for profiling, gc, etc. should be made in the next few months.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31807 91177308-0d34-0410-b5e6-96231b3b80d8
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
will compute a locally wrong numbering for the intrinsics. This fixes a
nasty issue where the x86 backend started miscompiling stuff in a 'cvs up'd
build after the altivec intrinsics were added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31172 91177308-0d34-0410-b5e6-96231b3b80d8
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29934 91177308-0d34-0410-b5e6-96231b3b80d8
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This
leads to the following reduction in library and executable sizes:
DEBUG BUILD RELEASE BUILD
before after delta before after delta
lib 162,328K 157,616K 4,712 17,864K 16,416K 1,448K
bin 571,444K 557,156K 14,288 63,296K 56,996K 6,300K
Debug Improvement: 19,000K (2.59%)
Release Improvement: 7,748K (9.55%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29882 91177308-0d34-0410-b5e6-96231b3b80d8