Lauro Ramos Venancio [Fri, 27 Apr 2007 21:08:48 +0000 (21:08 +0000)]
add TLS tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36516
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 20:35:56 +0000 (20:35 +0000)]
add a GEP helper function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Fri, 27 Apr 2007 20:10:08 +0000 (20:10 +0000)]
add parenthesis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36514
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 18:27:13 +0000 (18:27 +0000)]
Doh. ARM::LEApcrel is a single instruction MI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36513
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Fri, 27 Apr 2007 17:58:03 +0000 (17:58 +0000)]
In Thumb mode, the frame register must be R7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 17:44:50 +0000 (17:44 +0000)]
refactor some code relating to pointer cast xforms, pulling it out of the codepath
for unrelated casts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36511
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 17:12:52 +0000 (17:12 +0000)]
Fix incorrect legalization of EHSELECTOR. This fixes
CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36510
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 17:12:23 +0000 (17:12 +0000)]
make this testcase harder, to cover PR1326
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36509
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 17:02:33 +0000 (17:02 +0000)]
reset errno to zero on entry to the application's main function. This fixes
MultiSource/Applications/minisat in the JIT.
Note that the libsystem stuff should ideally never modify errno. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36508
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 27 Apr 2007 14:43:05 +0000 (14:43 +0000)]
Fix prolific source of 'possible loss of data' warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36507
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Fri, 27 Apr 2007 13:54:47 +0000 (13:54 +0000)]
ARM TLS: implement "general dynamic", "initial exec" and "local exec" models.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36506
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 08:15:43 +0000 (08:15 +0000)]
Darwin runtime library does not have these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36505
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 08:14:15 +0000 (08:14 +0000)]
Special handling of LEApcrel and tLEApcrel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36504
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 07:50:02 +0000 (07:50 +0000)]
Back out previous check-in. Incorrect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36503
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 07:37:22 +0000 (07:37 +0000)]
tLEApcrel is a AddrModeTs, i.e. pc relative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36502
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 27 Apr 2007 07:33:31 +0000 (07:33 +0000)]
Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36501
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 27 Apr 2007 06:56:53 +0000 (06:56 +0000)]
Test that eh_selector lowering accepts global variables as well as bitcasts
of global variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36500
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 27 Apr 2007 01:20:11 +0000 (01:20 +0000)]
improve EH global handling, patch by Duncan Sands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36499
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 26 Apr 2007 21:33:42 +0000 (21:33 +0000)]
Move ~Pass() from Pass.h into Pass.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36498
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 26 Apr 2007 21:20:04 +0000 (21:20 +0000)]
Unxfail tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36497
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 21:09:43 +0000 (21:09 +0000)]
enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrap
successfully! woohoo...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36496
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 26 Apr 2007 21:07:05 +0000 (21:07 +0000)]
Fix PR1339 and CodeGen/X86/dollar-name.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36495
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 26 Apr 2007 21:06:48 +0000 (21:06 +0000)]
Have MMX registers clobbered in x86-64 too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36494
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 26 Apr 2007 21:06:41 +0000 (21:06 +0000)]
Delete Analysis Resolver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36493
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 26 Apr 2007 21:04:39 +0000 (21:04 +0000)]
testcase for PR1339: http://llvm.org/PR1339
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36492
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 26 Apr 2007 20:49:05 +0000 (20:49 +0000)]
Add test to proper place. Also, XFAIL until ppc bootstrap will be ok.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36491
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 26 Apr 2007 20:44:04 +0000 (20:44 +0000)]
Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 26 Apr 2007 19:43:14 +0000 (19:43 +0000)]
Update a comment to reflect recent changes in the type system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36486
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 26 Apr 2007 19:40:56 +0000 (19:40 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36485
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 26 Apr 2007 19:28:33 +0000 (19:28 +0000)]
An example for PR1362
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36484
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 19:00:32 +0000 (19:00 +0000)]
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 26 Apr 2007 18:19:35 +0000 (18:19 +0000)]
1. Don't swap byte order in scanf. It isn't necessary and leads to
incorrect results (canonicalization was dropped several commits ago).
2. Add support for fscanf.
3. Suppress a warning about cast to pointer from non-pointer-sized integer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36482
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 26 Apr 2007 17:50:19 +0000 (17:50 +0000)]
Use toplevel function pass manager as OnTheFly manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36481
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Thu, 26 Apr 2007 17:03:22 +0000 (17:03 +0000)]
bugfix: remember that ResNode was declared.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36477
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 26 Apr 2007 16:44:48 +0000 (16:44 +0000)]
Add two test cases to cover apintification change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36476
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 26 Apr 2007 16:42:07 +0000 (16:42 +0000)]
Using APInt more efficiently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36475
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Thu, 26 Apr 2007 15:07:47 +0000 (15:07 +0000)]
Rename identifier that GCC uses as a macro, breaking llvm-gcc build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36474
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 08:24:22 +0000 (08:24 +0000)]
Minor bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36473
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 05:53:54 +0000 (05:53 +0000)]
start code for writing out instructions. Separate BB#s from normal value
#'s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36472
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 05:53:04 +0000 (05:53 +0000)]
start defining codes for instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 05:31:05 +0000 (05:31 +0000)]
regen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36470
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 05:30:35 +0000 (05:30 +0000)]
wrap long lines
Fix PR1358 and test/Assembler/2007-04-25-AssemblerFoldExternWeak.ll, by
creating forward decl globals with linkage extern_weak to defeat implicit
constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 05:28:45 +0000 (05:28 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36468
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 04:42:16 +0000 (04:42 +0000)]
enumerate BB's separately from other function values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36467
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 26 Apr 2007 03:59:24 +0000 (03:59 +0000)]
For PR1355:
Make the script process multiple files and describe its usage properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36466
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 03:50:57 +0000 (03:50 +0000)]
add support for incorporating and purging functions to the value enumerator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36465
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 03:32:43 +0000 (03:32 +0000)]
improve a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 03:27:58 +0000 (03:27 +0000)]
move some code around, fix a bug in the reader reading globalinits (which
I just introduced), stub out function reading, purge aggregate values from
the value table before reading functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 03:26:26 +0000 (03:26 +0000)]
add a new code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 02:46:40 +0000 (02:46 +0000)]
add bitcode alias support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 02:46:23 +0000 (02:46 +0000)]
add alias support to bitcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36460
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Apr 2007 02:24:10 +0000 (02:24 +0000)]
print aliases before functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36459
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 01:40:09 +0000 (01:40 +0000)]
Be careful when to add implicit kill / dead operands. Don't add them during / post reg-allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36458
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 01:14:14 +0000 (01:14 +0000)]
PR1348 test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36457
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 01:09:28 +0000 (01:09 +0000)]
Fix for PR1348. If stack inc / dec amount is > 32-bits, issue a series of add / sub instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36456
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 26 Apr 2007 00:07:36 +0000 (00:07 +0000)]
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36455
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 25 Apr 2007 23:52:02 +0000 (23:52 +0000)]
Quiet a compiler warning about assignment in an if-then conditional.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36454
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 22:32:55 +0000 (22:32 +0000)]
&& no longer needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36453
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 22:13:27 +0000 (22:13 +0000)]
Match MachineFunction::UsedPhysRegs changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36452
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 22:10:09 +0000 (22:10 +0000)]
Change UsedPhysRegs from array bool to BitVector to save some space. Setting / getting its states now go through MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36451
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 25 Apr 2007 21:58:17 +0000 (21:58 +0000)]
Testcase for codegen bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36450
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 21:34:08 +0000 (21:34 +0000)]
Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36449
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 25 Apr 2007 21:31:48 +0000 (21:31 +0000)]
Add SSSE3 as a feature of Core2. Add MMX registers to the list of registers
clobbered by a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36448
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 19:34:00 +0000 (19:34 +0000)]
Data structure change to improve compile time (especially in debug mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 25 Apr 2007 18:41:11 +0000 (18:41 +0000)]
Mem2Reg does not need TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36446
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 18:33:21 +0000 (18:33 +0000)]
This was lefted out. Fixed sumarray-dbl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36445
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 25 Apr 2007 18:32:35 +0000 (18:32 +0000)]
Mem2Reg does not need TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36444
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 25 Apr 2007 18:07:40 +0000 (18:07 +0000)]
Add missed semicolon. Resotre compatibility with older bisons
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36443
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 17:23:53 +0000 (17:23 +0000)]
do the multiplication as signed, so that 2*-2 == -4 instead of
4294967292
when promoted to 64-bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36442
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 25 Apr 2007 17:15:20 +0000 (17:15 +0000)]
Remove unused function argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36441
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 25 Apr 2007 17:13:18 +0000 (17:13 +0000)]
Note new header file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36440
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 25 Apr 2007 16:42:39 +0000 (16:42 +0000)]
Add missed file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36439
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Wed, 25 Apr 2007 14:50:40 +0000 (14:50 +0000)]
remember to emit weak reference in one more case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36438
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 25 Apr 2007 14:29:12 +0000 (14:29 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36437
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 25 Apr 2007 14:27:10 +0000 (14:27 +0000)]
Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part
will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 07:30:23 +0000 (07:30 +0000)]
Fix for PR1306.
- A register def / use now implicitly affects sub-register liveness but does
not affect liveness information of super-registers.
- Def of a larger register (if followed by a use later) is treated as
read/mod/write of a smaller register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 07:24:50 +0000 (07:24 +0000)]
Test if a register is sub- or super-register of another.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36433
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 07:24:13 +0000 (07:24 +0000)]
Minor speed tweak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36432
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 07:18:20 +0000 (07:18 +0000)]
Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36431
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 25 Apr 2007 07:12:14 +0000 (07:12 +0000)]
Relex assertions to account for additional implicit def / use operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36430
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 06:40:51 +0000 (06:40 +0000)]
If an alloca only has two types of uses: 1) reads 2) a memcpy/memmove that
copies from a constant global, then we can change the reads to read from the
global instead of from the alloca. This eliminates the alloca and the memcpy,
and promotes secondary optimizations (because the loads are now loads from
a constant global).
This is important for a common C idiom:
void foo() {
int A[] = {1,2,3,4,5,6,7,8,9...};
... only reads of A ...
}
For some reason, people forget to mark the array static or const.
This triggers on these multisource benchmarks:
JM/ldecode: block_pos, [3 x [4 x [4 x i32]]]
FreeBench/mason: m, [18 x i32], inlined 4 times
MiBench/office-stringsearch: search_strings, [1332 x i8*]
MiBench/office-stringsearch: find_strings, [1333 x i8*]
Prolangs-C++/city: dirs, [9 x i8*], inlined 4 places
and these spec benchmarks:
177.mesa: message, [8 x [32 x i8]]
186.crafty: bias_rl45, [64 x i32]
186.crafty: diag_sq, [64 x i32]
186.crafty: empty, [9 x i8]
186.crafty: xlate, [15 x i8]
186.crafty: status, [13 x i8]
186.crafty: bdinfo, [25 x i8]
445.gobmk: routines, [16 x i8*]
458.sjeng: piece_rep, [14 x i8*]
458.sjeng: t, [13 x i32], inlined 4 places.
464.h264ref: block8x8_idx, [3 x [4 x [4 x i32]]]
464.h264ref: block_pos, [3 x [4 x [4 x i32]]]
464.h264ref: j_off_tab, [12 x i32]
This implements Transforms/ScalarRepl/memcpy-from-global.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36429
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 06:29:34 +0000 (06:29 +0000)]
new testcase, should be able to eliminate the alloca and memcpy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 05:49:09 +0000 (05:49 +0000)]
simplify some code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 05:02:56 +0000 (05:02 +0000)]
refactor the SROA code out into its own method, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36426
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:30:24 +0000 (04:30 +0000)]
support for >4G stack frames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:29:06 +0000 (04:29 +0000)]
support for >4G frames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36424
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:25:10 +0000 (04:25 +0000)]
support >4G stack frames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36423
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:20:54 +0000 (04:20 +0000)]
support > 4G stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36422
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 25 Apr 2007 04:18:54 +0000 (04:18 +0000)]
Undo my previous changes. Since my approach to this problem is being revised,
this approach is no longer appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36421
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:08:28 +0000 (04:08 +0000)]
allow support for 64-bit stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36420
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 04:07:31 +0000 (04:07 +0000)]
allow 64-bit stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36419
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 01:51:33 +0000 (01:51 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36418
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 25 Apr 2007 00:37:04 +0000 (00:37 +0000)]
Fix
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20070423/048376.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36417
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 25 Apr 2007 00:35:37 +0000 (00:35 +0000)]
New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36416
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 00:26:05 +0000 (00:26 +0000)]
testcase for PR1352
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36415
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 25 Apr 2007 00:14:49 +0000 (00:14 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36414
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 00:00:45 +0000 (00:00 +0000)]
Be more careful about folding op(x, undef) when we have vector operands.
This fixes CodeGen/X86/2007-04-24-VectorCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36413
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 25 Apr 2007 00:00:12 +0000 (00:00 +0000)]
new testcase that crashes llc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36412
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 24 Apr 2007 23:48:30 +0000 (23:48 +0000)]
Add me
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36411
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Apr 2007 22:51:03 +0000 (22:51 +0000)]
Fix PR1351 and CodeGen/PowerPC/2007-04-24-InlineAsm-I-Modifier.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36410
91177308-0d34-0410-b5e6-
96231b3b80d8