Evan Cheng
4d17671997
No need recognize load from a fixed argument slot as re-materializable. LiveIntervalAnalysis already handles it as a special case.
...
llvm-svn: 47522
2008-02-23 01:47:44 +00:00
Devang Patel
6a49782d33
Properly read and write bitcodes for multiple return values.
...
llvm-svn: 47521
2008-02-23 01:44:55 +00:00
Evan Cheng
e70afb021b
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction.
...
llvm-svn: 47520
2008-02-23 01:44:27 +00:00
Devang Patel
14f9994562
Regenerate.
...
llvm-svn: 47519
2008-02-23 01:17:37 +00:00
Devang Patel
6c4bc99c44
Use isa check instead of getTypeID() check.
...
llvm-svn: 47518
2008-02-23 01:17:17 +00:00
Ted Kremenek
f28aec5261
Fixed buffer overflow reported by Argiris Kirtzidis.
...
llvm-svn: 47517
2008-02-23 01:11:40 +00:00
Devang Patel
690fcf68b1
Remove unnecessary "inline" keywords.
...
llvm-svn: 47516
2008-02-23 01:11:02 +00:00
Ted Kremenek
f948d2a75f
Change encoding of TokenKind in IdentifierTable to be of type "unsigned"
...
instead of TokenKind because of signedness issues with MSVC and enums.
Patch from Argiris Kirtzidis.
llvm-svn: 47515
2008-02-23 01:05:54 +00:00
Devang Patel
d995551261
print getresult operand and its type directly.
...
llvm-svn: 47514
2008-02-23 01:04:26 +00:00
Evan Cheng
26e5d01ca1
Really. Why doesn't every arch support MMX?
...
llvm-svn: 47513
2008-02-23 00:56:14 +00:00
Ted Kremenek
652d18e37c
Patch from Argiris Kirtzidis:
...
The patch fixes some debug assertions that the msvcrt throws:
1)
- if (isprint(value) && value < 256) {
+ if (value < 256 && isprint(value)) {
isprint() does an assertion check of its own for value < 256; check value before calling it to prevent it.
2)
- Stmt->Names.push_back(std::string(&data[0], data.size()));
+ if (data.size() == 0)
+ Stmt->Names.push_back(std::string());
+ else
+ Stmt->Names.push_back(std::string(&data[0], data.size()));
If data.size() == 0 then data[0] throws "out of range" assertion.
llvm-svn: 47512
2008-02-23 00:52:04 +00:00
Devang Patel
2f2ff159a5
Use dyn_cast instead of isa + cast.
...
llvm-svn: 47511
2008-02-23 00:47:00 +00:00
Evan Cheng
69876ef700
Forgot this.
...
llvm-svn: 47510
2008-02-23 00:46:11 +00:00
Devang Patel
a22220d8f6
Regenerate
...
llvm-svn: 47509
2008-02-23 00:38:56 +00:00
Devang Patel
59643e575f
To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.
...
llvm-svn: 47508
2008-02-23 00:35:18 +00:00
Evan Cheng
4f5cb4cdac
Fix spill weight updating bug.
...
llvm-svn: 47507
2008-02-23 00:33:04 +00:00
Ted Kremenek
b0b7d28f67
Fixed horrid bug in LiveVariables analysis where we were only merging at
...
confluence points the liveness information for variables (Decls) and NOT
block-level expressions.
llvm-svn: 47506
2008-02-22 23:17:20 +00:00
Dale Johannesen
09f410b6d7
Split ParameterAttributes.h, putting the complicated
...
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
llvm-svn: 47504
2008-02-22 22:17:59 +00:00
Gordon Henriksen
60c140433b
Improving wording.
...
llvm-svn: 47503
2008-02-22 21:55:51 +00:00
Gordon Henriksen
6ee6b7c3c1
Adding a note about IR generation to the LLVM FAQ.
...
llvm-svn: 47502
2008-02-22 20:58:29 +00:00
Evan Cheng
cee351c410
Test case for PR2082.
...
llvm-svn: 47501
2008-02-22 20:38:49 +00:00
Evan Cheng
b6d981bddd
Same isPhysRegAvailable bug as local register allocator.
...
llvm-svn: 47500
2008-02-22 20:31:32 +00:00
Evan Cheng
52c15b3e6d
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when
...
it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.
llvm-svn: 47499
2008-02-22 20:30:53 +00:00
Ted Kremenek
c77f34daad
Modified clang driver option -dump-live-variables to (optionally) use the
...
--analyze-function option to analyze specific functions.
llvm-svn: 47498
2008-02-22 20:13:09 +00:00
Ted Kremenek
88329bf0ea
clang driver options --dump-cfg and --view-cfg now (optionally) use the
...
--analyze-function option to dump/view the CFGs of specific functions.
llvm-svn: 47497
2008-02-22 20:00:31 +00:00
Evan Cheng
a1977d32f0
Add debugging printfs.
...
llvm-svn: 47496
2008-02-22 19:57:06 +00:00
Devang Patel
faafcfd3ce
Regenerate
...
llvm-svn: 47495
2008-02-22 19:31:30 +00:00
Devang Patel
8f4062975e
Use SymbolicValueRef to parse getresult operand
...
llvm-svn: 47494
2008-02-22 19:31:15 +00:00
Evan Cheng
b1d1f9f0a9
Remove an invalid assertion now that there are implicit virtual register operands.
...
llvm-svn: 47493
2008-02-22 19:25:04 +00:00
Evan Cheng
ea1ef87ea2
Make sure reload of implicit uses are issued before remat's.
...
llvm-svn: 47492
2008-02-22 19:22:06 +00:00
Ted Kremenek
76c03b4a55
When running the GRSimpleVals analysis, skip functions that do not
...
appear in a file.
llvm-svn: 47491
2008-02-22 19:10:58 +00:00
Ted Kremenek
43638a87e5
Punt on unifying symbolic lvalues. This won't be needed for many checkers.
...
llvm-svn: 47489
2008-02-22 18:41:59 +00:00
Devang Patel
ac6951a0b9
Add StripDeadPrototypes pass.
...
llvm-svn: 47488
2008-02-22 18:39:29 +00:00
Dale Johannesen
45b0ef25b2
Generated files for 47484.
...
llvm-svn: 47485
2008-02-22 17:50:51 +00:00
Dale Johannesen
eabc5f39af
Pass alignment on ByVal parameters, from FE, all
...
the way through. It is now used for codegen.
llvm-svn: 47484
2008-02-22 17:49:45 +00:00
Dale Johannesen
eac159c1f0
MMX vectors are passed 4-byte aligned.
...
llvm-svn: 47483
2008-02-22 17:47:28 +00:00
Anton Korobeynikov
6c1c0b8b57
Add smart refcounting pointer class to ADT back (known before as IntrusiveSPtr.h).
...
llvm-svn: 47482
2008-02-22 17:26:05 +00:00
Chris Lattner
c8576eeaad
fix some bugs in tutorial, patch by Erick Tryzelaar
...
llvm-svn: 47481
2008-02-22 17:09:39 +00:00
Anton Korobeynikov
622e21256e
Unbreak build for VC2008. Patch by Argiris Kirtzidis!
...
llvm-svn: 47480
2008-02-22 10:11:21 +00:00
Anton Korobeynikov
6636210de7
Provide __main hooks for cygwin & mingw32
...
llvm-svn: 47479
2008-02-22 10:08:31 +00:00
Zhou Sheng
3b8eb704fc
Fixed a typo.
...
llvm-svn: 47478
2008-02-22 10:00:35 +00:00
Evan Cheng
94ba37f8e3
Allow re-materialization of pic load (controlled by -remat-pic-load for now).
...
llvm-svn: 47476
2008-02-22 09:25:47 +00:00
Evan Cheng
c373911461
Enable re-materialization of instructions which have virtual register operands if
...
the definition of the operand also reaches its uses.
llvm-svn: 47475
2008-02-22 09:24:50 +00:00
Chris Lattner
ab8bfc28c8
copy mmx values from/to memory with GPRs on x86-32
...
instead of with mmx registers. This horribleness is apparently
done by gcc to avoid having to insert emms in places that really
should have it. This is the second half of rdar://5741668.
llvm-svn: 47474
2008-02-22 05:18:04 +00:00
Devang Patel
e665095da1
Print getresult instruction properly.
...
llvm-svn: 47473
2008-02-22 03:10:23 +00:00
Devang Patel
b5f5073a1a
Print ret instruction that returns aggregates.
...
llvm-svn: 47472
2008-02-22 02:50:49 +00:00
Devang Patel
49cfe7018f
Read and write getresult.
...
llvm-svn: 47471
2008-02-22 02:49:49 +00:00
Chris Lattner
997b3a65ca
Start using GPR's to copy around mmx value instead of mmx regs.
...
GCC apparently does this, and code depends on not having to do
emms when this happens. This is x86-64 only so far, second half
should handle x86-32.
rdar://5741668
llvm-svn: 47470
2008-02-22 02:09:43 +00:00
Chris Lattner
160742ff57
minor cleanups to LSBaseSDNode.
...
llvm-svn: 47469
2008-02-22 01:54:35 +00:00
Evan Cheng
271aef2b03
Fix compiler warning.
...
llvm-svn: 47468
2008-02-22 01:48:00 +00:00