Evan Cheng [Mon, 30 Jun 2008 07:31:25 +0000 (07:31 +0000)]
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag.
- Correctly handle memcpy from constant string which is zero-initialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52891
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Jun 2008 03:02:03 +0000 (03:02 +0000)]
check in anton's patch to make inlining happen in a determinstic order
and fix the bug that it uncovers: inlining a pattern fragment could bring
in other pattern fragments if the inlinee hadn't already been inlined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52888
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Jun 2008 02:43:01 +0000 (02:43 +0000)]
Implement split and scalarize for SELECT_CC, fixing PR2504
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52887
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 30 Jun 2008 01:04:39 +0000 (01:04 +0000)]
Because of the laziness, the required passes must exist even after
LoopVR::runOnFunction runs.
This should accomplish that, but it doesn't. I think that's a PassManager bug,
but without a consumer of LoopVR in the tree, I can't give steps to reproduce.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52886
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 30 Jun 2008 00:04:21 +0000 (00:04 +0000)]
Add a value range analysis that lazily computes ranges using ScalarEvolutions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52885
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 29 Jun 2008 17:57:03 +0000 (17:57 +0000)]
Revert (52748 and friends):
Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
This unbreaks llvm-gcc bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52884
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 13:45:57 +0000 (13:45 +0000)]
Start refactoring of asmprinters: provide a TAI hook, which will select a 'section kind' for a global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52868
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:10:06 +0000 (11:10 +0000)]
Unbreak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52866
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:09:48 +0000 (11:09 +0000)]
Temporary rever invalid commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52865
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:09:32 +0000 (11:09 +0000)]
Move printing of module-level GVs into dedicated helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52864
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:09:17 +0000 (11:09 +0000)]
Use common naming convention
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52863
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:09:01 +0000 (11:09 +0000)]
Factor out stuff into helper function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52862
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:08:44 +0000 (11:08 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52861
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:08:27 +0000 (11:08 +0000)]
Remove X86SharedAsmPrinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52860
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:08:09 +0000 (11:08 +0000)]
whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52859
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:07:54 +0000 (11:07 +0000)]
Make intel asmprinter child of generic asmprinter, not x86 shared asm printer. This leads to some code duplication, which will be resolved later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52858
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:07:35 +0000 (11:07 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52857
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 28 Jun 2008 11:07:18 +0000 (11:07 +0000)]
Whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52856
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Jun 2008 06:24:50 +0000 (06:24 +0000)]
Really fix the bootstrap failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52854
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Jun 2008 05:33:32 +0000 (05:33 +0000)]
Add back the capability to include nul characters in strings with
GetConstantStringInfo. This will hopefully restore llvm-gcc to
happy bootstrap land.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52851
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 28 Jun 2008 04:37:04 +0000 (04:37 +0000)]
Tighten up checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52850
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 28 Jun 2008 00:45:22 +0000 (00:45 +0000)]
When folding a bitcast into a load or store, preserve the alignment
information of the original load or store, which is checked to be
at least as good, and possibly better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52849
91177308-0d34-0410-b5e6-
96231b3b80d8
Seo Sanghyeon [Fri, 27 Jun 2008 22:55:30 +0000 (22:55 +0000)]
Fix GetMainExecutable. Patch by Sam Bishop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52847
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Jun 2008 22:11:49 +0000 (22:11 +0000)]
Looks like this condition is inverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52841
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 27 Jun 2008 21:48:21 +0000 (21:48 +0000)]
Add a NextPowerOf2 function to calculate the next power of two greater than a given integer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52839
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 21:26:26 +0000 (21:26 +0000)]
implement some fixme's by making "autorenaming" in the value symbol table not
thrash the heap with string stuff (e.g. utostr).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52838
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 21:25:24 +0000 (21:25 +0000)]
simplify some code to avoid string thrashing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52837
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 27 Jun 2008 21:22:49 +0000 (21:22 +0000)]
Use StringSet instead of std::set<std::string>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52836
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 21:15:25 +0000 (21:15 +0000)]
add a helper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52835
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 21:09:10 +0000 (21:09 +0000)]
Add a new version of Module::getFunction that takes a const char* instead
of a std::string. This avoids copying the string to the heap in common
cases. Patch by Pratik Solanki!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52834
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 18:49:21 +0000 (18:49 +0000)]
Tweak IRBuilder to explicitly call the setName(const char*) method on Value
instead of passing the name into the instruction ctors. Since most
instruction ctors take their name as an std::string, this avoids copying the
string to the heap and a malloc and free.
Patch by Pratik Solanki!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52832
91177308-0d34-0410-b5e6-
96231b3b80d8
Cedric Venet [Fri, 27 Jun 2008 18:00:09 +0000 (18:00 +0000)]
Add an include file needed for VS.
Add two new file to codegen project (VS).
This unbreak the build for VS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52831
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 27 Jun 2008 16:43:21 +0000 (16:43 +0000)]
Add dominator info printer pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52829
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 27 Jun 2008 16:10:20 +0000 (16:10 +0000)]
Provide correct encoding for PPC LWARX instructions.
Patch by Gary Benson!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52828
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 27 Jun 2008 15:08:59 +0000 (15:08 +0000)]
Since we are using GCC to assemble the program, make sure the assembly syntax is AT&T.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52827
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 27 Jun 2008 14:22:20 +0000 (14:22 +0000)]
Regression test for PR2443.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52826
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 27 Jun 2008 10:52:12 +0000 (10:52 +0000)]
Use the c modifier to tell llvm-ar not to issue a
warning when creating the archive (the warning
causes the test to fail).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52824
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 07:13:44 +0000 (07:13 +0000)]
Reduce number of times .size() is called on a vector. Rename some variables to
match normal naming scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52820
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 27 Jun 2008 07:05:59 +0000 (07:05 +0000)]
Use a SmallSet when we can to reduce memory allocations.
This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52819
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 27 Jun 2008 06:56:04 +0000 (06:56 +0000)]
Cache subregister relationships in a set in TargetRegisterInfo to allow faster lookups.
This speeds up LiveVariables from 0.6279s to 0.6165s on kimwitu++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52818
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 03:36:51 +0000 (03:36 +0000)]
fix the regressions from Eric's patch by making GetConstantStringInfo
tolerate a non-nul-terminated string, and handling a direct global
reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 03:18:41 +0000 (03:18 +0000)]
simplify this check, GetConstantStringInfo validates that a
global is constant already. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52812
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 03:14:20 +0000 (03:14 +0000)]
test doesn't need eh info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52811
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Jun 2008 03:10:24 +0000 (03:10 +0000)]
when linking globals, make sure to preserve the address space of the global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52810
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 01:37:37 +0000 (01:37 +0000)]
More cruft from revert...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52809
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 01:32:08 +0000 (01:32 +0000)]
Cruft left from patch revert...sorry. :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52808
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 01:27:56 +0000 (01:27 +0000)]
Reverting broken patch r52803.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52806
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 27 Jun 2008 01:22:50 +0000 (01:22 +0000)]
Don't perform expensive queries checking for super and sub registers when we know that there aren't any.
This speed up LiveVariables on instcombine at -O0 -g from 0.3855s to 0.3503s. Look for more improvements in this area soon!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52804
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 00:56:36 +0000 (00:56 +0000)]
- Remove a use of std::vector.
- Make sure that we're not recalculating the size of a vector
that never changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52803
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 27 Jun 2008 00:09:40 +0000 (00:09 +0000)]
Refactor the DebugInfoDesc stuff out of the MachineModuleInfo file. Clean up
some uses of std::vector, where it's return std::vector by value. Yuck!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52800
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Thu, 26 Jun 2008 22:58:37 +0000 (22:58 +0000)]
Add a note for Thunderbird users to the Developer Policy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52797
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Jun 2008 22:26:45 +0000 (22:26 +0000)]
allow updating the MPM, so that you can use one FunctionPAssManager with
multiple ModuleProviders, e.g. with the JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52796
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Jun 2008 22:09:29 +0000 (22:09 +0000)]
XFAIL for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52795
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 26 Jun 2008 18:11:45 +0000 (18:11 +0000)]
Remove warnings about shadowed and unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52791
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 26 Jun 2008 17:53:12 +0000 (17:53 +0000)]
Update VS project files. The clang executable now depends on the LLVM Analysis library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52789
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 26 Jun 2008 17:20:16 +0000 (17:20 +0000)]
Use a DenseMap instead of an std::map for mangled name lookup. This is
improves AsmPrinter runtime on instcombine from 0.3920s to 0.3836s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52787
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Jun 2008 17:16:00 +0000 (17:16 +0000)]
duncan points out that isOperationLegal includes a check for
type legality. Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52786
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 26 Jun 2008 17:06:02 +0000 (17:06 +0000)]
Don't create a whole new string just to copy the elements into it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52785
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 26 Jun 2008 17:03:28 +0000 (17:03 +0000)]
Use the -enable-pre flag so this test doesn't fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52784
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 26 Jun 2008 10:36:58 +0000 (10:36 +0000)]
Make LLVM compile on DragonFly BSD (PR2499).
Patch by Hasso Tepper!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52781
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 26 Jun 2008 09:49:38 +0000 (09:49 +0000)]
Add missing semicolumn in my last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52780
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 26 Jun 2008 09:48:11 +0000 (09:48 +0000)]
Improve comments wrt createInternalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52779
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 26 Jun 2008 08:32:05 +0000 (08:32 +0000)]
Cleanup for unitialized types. Patch by Jean-Daniel Dupas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52775
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Jun 2008 05:17:18 +0000 (05:17 +0000)]
"An improved Mach-O file type detection for sys::IdentifyFileType()
This patch add supports for single architecture mach-o files (the current implementation only support Universal Binary), and solve the signature conflict between java class and Universal Binary magics.
Note that this function will always returned dynamic library for Universal Binaries (like the current implementation) because the binary type is not include in the file header."
Patch by Jean-Daniel Dupas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52766
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 26 Jun 2008 04:47:41 +0000 (04:47 +0000)]
Reserve the size we'll need in advance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52763
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 26 Jun 2008 01:55:32 +0000 (01:55 +0000)]
Allow for rounding up of stack frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52751
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 26 Jun 2008 01:51:13 +0000 (01:51 +0000)]
Fixes the last x86-64 test failure in compat.exp:
<16 x float> is 64-byte aligned (for some reason),
which gets us into the stack realignment code. The
computation changing FP-relative offsets to SP-relative
was broken, assiging a spill temp to a location
also used for parameter passing. This
fixes it by rounding up the stack frame to a multiple
of the largest alignment (I concluded it wasn't fixable
without doing this, but I'm not very sure.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52750
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 26 Jun 2008 01:19:35 +0000 (01:19 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52749
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 26 Jun 2008 00:31:12 +0000 (00:31 +0000)]
Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52748
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Jun 2008 00:16:49 +0000 (00:16 +0000)]
when we know the signbit of an input to uint_to_fp is zero,
change it to sint_to_fp on targets where that is cheaper (and
visaversa of course). This allows us to compile uint_to_fp to:
_test:
movl 4(%esp), %eax
shrl $23, %eax
cvtsi2ss %eax, %xmm0
movl 8(%esp), %eax
movss %xmm0, (%eax)
ret
instead of:
.align 3
LCPI1_0: ## double
.long 0 ## double least significant word 4.5036e+15
.long
1127219200 ## double most significant word 4.5036e+15
.text
.align 4,0x90
.globl _test
_test:
subl $12, %esp
movl 16(%esp), %eax
shrl $23, %eax
movl %eax, (%esp)
movl $
1127219200, 4(%esp)
movsd (%esp), %xmm0
subsd LCPI1_0, %xmm0
cvtsd2ss %xmm0, %xmm0
movl 20(%esp), %eax
movss %xmm0, (%eax)
addl $12, %esp
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52747
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 25 Jun 2008 23:39:39 +0000 (23:39 +0000)]
Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later.
This speeds up live intervals from 0.37s to 0.30s on instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52745
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 25 Jun 2008 22:14:43 +0000 (22:14 +0000)]
Fix the text in an assert string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52744
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Jun 2008 20:52:59 +0000 (20:52 +0000)]
- Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a
shift.
- Add a readme entry for a missing vector_shuffle optimization that results in
awful codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52740
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 25 Jun 2008 20:24:48 +0000 (20:24 +0000)]
Add support for expanding PPC 128 bit floats.
For this it is convenient to permit floats to
be used with EXTRACT_ELEMENT, so I tweaked
things to allow that. I also added libcalls
for ppcf128 to i32 forms of FP_TO_XINT, since
they exist in libgcc and this case can certainly
occur (and does occur in the testsuite) - before
the i64 libcall was being used. Also, the
XINT_TO_FP result seemed to be wrong when
the argument is an i128: the wrong fudge
factor was added (the i32 and i64 cases were
handled directly, but the i128 code fell
through to some generic softening code which
seemed to think it was i64 to f32!). So I
fixed it by adding a fudge factor that I
found in my breakfast cereal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52739
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 20:21:35 +0000 (20:21 +0000)]
Implement JIT support for global aliases, patch by David Chisnall!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52738
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Jun 2008 18:10:09 +0000 (18:10 +0000)]
Restore DeadArgElim back to 52570. It's breaking 447.dealII.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52736
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 17:18:44 +0000 (17:18 +0000)]
Switch the PPC backend and target-independent JIT to use the libsystem
InvalidateInstructionCache method instead of calling through
a hook on the JIT. This is a host feature, not a target feature.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52734
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 17:17:53 +0000 (17:17 +0000)]
fix compilation errors in my previous patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 17:14:10 +0000 (17:14 +0000)]
Add a new InvalidateInstructionCache method to sys::Memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52731
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 16:54:18 +0000 (16:54 +0000)]
jump threading can introduce allocas, make sure we promote
them back to registers!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52729
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 16:51:55 +0000 (16:51 +0000)]
run mem2reg after the second jump threading pass in llvm-ld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 16:44:52 +0000 (16:44 +0000)]
remove a bunch of dead options that never did anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 16:44:08 +0000 (16:44 +0000)]
remove some dead options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52726
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 25 Jun 2008 16:38:59 +0000 (16:38 +0000)]
SimpleInstructionSelector is here no more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52725
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 25 Jun 2008 16:34:21 +0000 (16:34 +0000)]
Add/complete support for integer and float
select_cc and friends. This code could be
factorized a bit but I'm not sure that it's
worth it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52724
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 25 Jun 2008 16:31:18 +0000 (16:31 +0000)]
Pacify gcc-4.3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52723
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 25 Jun 2008 16:07:49 +0000 (16:07 +0000)]
Remove the OrigVT member from AtomicSDNode, as it is redundant with
the base SDNode's VTList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52722
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 16:03:42 +0000 (16:03 +0000)]
simplify shell syntax to work better on solaris, patch by
Nathan Keynes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52721
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Wed, 25 Jun 2008 08:15:39 +0000 (08:15 +0000)]
Added MemOperands to Atomic operations since Atomics touches memory.
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Wed, 25 Jun 2008 08:12:16 +0000 (08:12 +0000)]
Fix a (false) warning on darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52705
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Wed, 25 Jun 2008 08:10:21 +0000 (08:10 +0000)]
Fix some cosmetics in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52704
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Jun 2008 07:50:12 +0000 (07:50 +0000)]
- Use O(1) check of basic block size limit.
- Avoid speculatively execute vector ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Jun 2008 05:59:28 +0000 (05:59 +0000)]
Fix PR2488, a case where we deleted stack restores too aggressively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52702
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Jun 2008 01:16:38 +0000 (01:16 +0000)]
Enable two-address remat by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52701
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 25 Jun 2008 01:05:05 +0000 (01:05 +0000)]
Use push_back rather than operator[], which is incorrect in this cases. Unfortunately, this slow the testcase down a little bit,
but only marginally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52700
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 25 Jun 2008 00:10:22 +0000 (00:10 +0000)]
Use present tense when talking about User layout. It is implemented now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52699
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 24 Jun 2008 22:07:07 +0000 (22:07 +0000)]
Append to the ActiveTimers std::vector before looking at the timer instead
of after, so that any reallocation it does doesn't get counted for the pass
being timed. This probably doesn't account for a timing discrepancy I was
looking into, but I'm fixing it anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52693
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 24 Jun 2008 22:03:36 +0000 (22:03 +0000)]
v2f32 is now a valid (MMX) type which breaks this
test (doesn't work for any MMX vector types, it's
not me). Rewritten to use v2i16 which is generic
and going to stay that way; I think that preserves
the point of the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52692
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 24 Jun 2008 22:01:44 +0000 (22:01 +0000)]
Add v2f32 (MMX) type to X86. Support is primitive:
load,store,call,return,bitcast. This is enough to
make call and return work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52691
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 24 Jun 2008 21:58:29 +0000 (21:58 +0000)]
In ConstantArray::getAsString(), we know the size of the resultant string in advance so we can pre-allocate it and just fill in
the entries. This improves the time for the AsmPrinter on InstructionCombining.cpp from 0.4248s to 0.3370s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52690
91177308-0d34-0410-b5e6-
96231b3b80d8