Bill Wendling
6b1da9c39f
Add flags to indicate that there are "never" side effects or that there "may be"
...
side effects for machine instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45022 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-14 01:48:59 +00:00
Dan Gohman
fd80072059
Make it more clear that some things that can't be done in .td files can
...
still be done in the LLVM code generator. And update the summary for the
X86 target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45013 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 20:43:47 +00:00
Wojciech Matyjewicz
4ba8cfc5a4
Make these loops follow GetGEPOperands() behavior.
...
Let: %q = GEP %p, X, ...
If %p is a GEP, we can chase baseptr further, only if X==0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44999 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 16:22:58 +00:00
Evan Cheng
696e5c047b
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44997 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 07:50:36 +00:00
Owen Anderson
62d67dd3a3
Add register pairs to the list to check for local interferences.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 05:53:03 +00:00
Owen Anderson
4ba08ecbcf
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 05:43:37 +00:00
Evan Cheng
f9785f92b6
Be extra careful with extension use optimation. Now turned on by default.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44981 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 03:32:53 +00:00
Nate Begeman
bd4d6b8564
Apply CBE/MSIL patch to autoconf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44980 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 02:24:45 +00:00
Nate Begeman
544f83db6b
Add install-libs target which only installs libraries, not tools
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44979 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 02:17:17 +00:00
Zhou Sheng
f488a8d394
Remove this testcase as it will always fail on
...
platform like Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44977 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 02:03:57 +00:00
Nate Begeman
57b1efb3a2
Do not build CBackend and MSIL regardless of configured targets
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44973 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 01:18:52 +00:00
Evan Cheng
1314b00cf2
Fold some and + shift in x86 addressing mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44970 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 00:43:27 +00:00
Evan Cheng
3dd298fb62
Oops. Forgot these.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44969 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 00:42:35 +00:00
Chris Lattner
915c656a74
Fix for edge profiling, patch by 'Marc' for PR1857
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44965 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13 00:04:46 +00:00
Evan Cheng
2e07d33f04
Cosmetic change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44961 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 23:15:59 +00:00
Evan Cheng
6e141fd048
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 23:12:09 +00:00
Duncan Sands
67f1c493d1
Remove host endianness info from TargetData and
...
put it in a new header System/Host.h instead.
Instead of getting the endianness from configure,
calculate it directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44959 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 23:03:45 +00:00
Dan Gohman
8d2ed33f6f
Remove a forward-declaration for a non-existant class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44955 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 22:25:09 +00:00
Dan Gohman
890813243f
Allow vector integer constants to be created with
...
SelectionDAG::getConstant, in the same way as vector floating-point
constants. This allows the legalize expansion code for @llvm.ctpop and
friends to be usable with vector types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 22:21:26 +00:00
Anton Korobeynikov
41ff20bff4
Use vector for child storage instead of map. This will also make
...
our life during future GraphTraits'ing slightly easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44952 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 19:08:44 +00:00
Duncan Sands
7915cbee4d
Revert r44626, which turned off the use of readonly
...
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 16:01:40 +00:00
Wojciech Matyjewicz
ed2232502e
1. "Upgrage" comments.
...
2. Using zero-extended value of Scale and unsigned division is safe provided
that Scale doesn't have the sign bit set.
Previously these 2 instructions:
%p = bitcast [100 x {i8,i8,i8}]* %x to i8*
%q = getelementptr i8* %p, i32 -4
were combined into:
%q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0,
i32 1431655764, i32 0
what was incorrect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 15:21:32 +00:00
Christopher Lamb
bf3348d944
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44934 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 08:45:45 +00:00
Christopher Lamb
d49e18d29f
Implement part of review feedback for address spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 08:44:39 +00:00
Evan Cheng
794405e6aa
Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 07:55:34 +00:00
Evan Cheng
2044bccd1a
Add a test case for -optimize-ext-uses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44928 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 07:54:08 +00:00
Evan Cheng
db2d524d5f
Lower a build_vector with all constants into a constpool load unless it can be done with a move to low part.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44921 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 06:45:40 +00:00
Zhou Sheng
621deadee8
Add a guard to cxxabi header as other platform may
...
not support it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44914 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 06:16:47 +00:00
Zhou Sheng
6a7951ce9b
Fixed PR1629.
...
Make lli interpreter correctly call external functions sin()/cos(),
__cxa_guard_acquire() and __cxa_guard_release().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44910 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 04:55:43 +00:00
Chris Lattner
7f135cc802
Fix a bug in my previous patch, thanks to Jay Foad for
...
pointing this out and correcting the patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44907 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 03:56:54 +00:00
Evan Cheng
765dff2585
Don't muck with phi nodes; bug fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44905 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 02:53:41 +00:00
Scott Michel
a28c6bfef3
Correct typo for Linux: s/esp/%rsp/
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44904 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 02:38:28 +00:00
Bill Wendling
8245aab330
Bit masks conflicted. Needed to bump them by one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44903 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 01:51:58 +00:00
Owen Anderson
ed2ffa25a1
Forgot to remove a register from the PHI-union after I'd determined that it
...
interfered with other registers. Seems like that might be a good thing to do. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 01:25:08 +00:00
Gordon Henriksen
1ae6135fa3
Add (very basic) bindings for ModuleProvider.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 01:04:30 +00:00
Evan Cheng
772de516b6
Bug fix. Only safe to perform extension uses optimization if the source of extension is also defined in the same BB as the extension.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44896 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 00:51:06 +00:00
Daniel Berlin
3a3f163ba6
Changes from Curtis Dunham implementing lazy cycle detection algorithm.
...
Changes from me implementing different way of representing points-to anything.
Changes from me that improve slightly on LCD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44895 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 00:37:04 +00:00
Evan Cheng
39c883cfc5
If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 23:36:57 +00:00
Bill Wendling
efe2be7976
Need to grow the indexed map. Added debug statements.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 23:27:51 +00:00
Bill Wendling
a17ad59e13
Simplify slightly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 22:22:22 +00:00
Anton Korobeynikov
765d8e5cbd
Remove Trie::Edge class. Now edge labels are stored into nodes itself.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44880 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 21:55:38 +00:00
Owen Anderson
d525f664c9
More progress on StrongPHIElimination. Now we actually USE the DomForest!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 20:12:11 +00:00
Bill Wendling
12ebf14048
Blark! How in the world did this work without this?!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 19:40:06 +00:00
Bill Wendling
28bd5f0e47
- Update the virtual reg to machine instruction map when hoisting.
...
- Fix subtle bug when creating initially creating this map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 19:17:04 +00:00
Bill Wendling
650b0527a4
Checking for "zero operands" during the "CanHoistInst()" method isn't necessary
...
because those with side effects will be caught by other checks in here.
Also, simplify the check for a BB in a sub loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 18:45:11 +00:00
Nate Begeman
6e041c2015
Allow the JIT to encode MMX instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44869 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 18:06:14 +00:00
Wojciech Matyjewicz
ac9d6cc3a1
Use correct member access operator.
...
(my test commit as well)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44868 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 17:46:25 +00:00
Dan Gohman
7228c9e92c
Rename these tests to use the appropriate suffixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 15:55:52 +00:00
Dan Gohman
83935ac59d
Use not instead of ignore when an exit status is expected to always
...
be non-zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44866 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 15:50:23 +00:00
Dan Gohman
131c60ab9c
Don't redirect stderr when it isn't needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44865 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 15:41:11 +00:00